Additions/Titelseite

Einleitung

(???)

Das erforscht am Institut für Flugsystemtechnik in der Abteilung für die automatisierte Bewegung von in unbekanntem Luftraum. Zur erfolgreichen Navigation wird eine Karte benötigt, die im Flug aufgebaut werden muss.

Dafür machen bildgebende Sensoren in zeitlichen Abständen Aufnahmen von der Umgebung. Diese Momentaufnahmen müssen für die korrekte Kartographie mit Bewegungsdaten des in Beziehung gebracht werden.

Aus bautechnischen Gründen befinden sich die Bewegungs- und die Bildgebungssensoren in der Regel an unterschiedlicher Position und Ausrichtung am . Damit eine korrekte Kartographie möglich ist, müssen diese Sensoren zueinander kalibriert werden (in Beziehung gebracht werden).

Bisher wird diese Kalibrierung manuell und für jeden Flug neu angefertigt. Dabei werden die Entfernungen und die Lage zwischen den Sensoren von Hand vermessen. Dieses Verfahren ist aufwendig und fehleranfällig. Aus diesen Gründen sollte das Verfahren automatisiert werden.

Deshalb wird für diese Arbeit folgende Forschungsfrage formuliert: “Ist es möglich, die Kalibrierung von bildgebenden Sensoren relativ zu Bewegungssensoren zu automatisieren?” Der präsentierte Ansatz behandelt die automatisierte Kalibrierung von -Sensorn als bildgebende Sensoren zu Bewegungssensoren (bestehend aus einer mit ).

Zuerst werden die Gemeinsamkeiten zweier aufeinanderfolgender Laserscans identifiziert und die eventuelle Bewegung zwischen den Scans durch einen -Algorithmus geschätzt. Das Fachgebiet zur Schätzung von Bewegungen aus Bildinformationen wird als visuelle Odometrie oder auch Ego-Motion (engl.), bezeichnet.

Parallel werden Navigationsdaten mittels einer und eines aufgezeichnet. Aus diesen Daten wird eine Bewegung bestimmt und im Anschluss mit der Schätzung des verglichen. Da sich die drei Sensoren (, und -Sensor) zueinander statisch auf einer Plattform befinden, muss die Differenz der zwei geschätzten Bewegungen (Bewegung des bildgebenden Sensors/ Bewegung der Navigationssensoren) das Resultat einer unterschiedlichen Position und Lage (Montagepose) zwischen -Sensor und der Kombination aus und sein. Diese Differenz entspricht den gesuchten Parametern für die relative Kalibrierung.

Die vorliegende Arbeit ist in drei Hauptkapitel unterteilt. Das Kapitel Grundlagen gibt einen Einblick in die physikalischen Grundlagen der verwendeten Sensoren, in die mathematischen Grundlagen zur Verarbeitung der Messdaten und in die verschiedenen Datenstrukturen für die algorithmische Verknüpfung. Im Anschluss wird der Ansatz zur relativen extrinsischen Kalibrierung präsentiert, der während der Masterarbeit als Filter im -Framework1 implementiert wurde. Den Abschluss bildet die Validierung der Kalibrierung in zwei voneinander unabhängigen Experimenten.

Grundlagen

Zum besseren Verständnis der Arbeit werden in den folgenden Abschnitten die Grundlagen in den Bereichen der Mathematik, Sensortechnik, Bezugssystemen und komplexen Datenstrukturen gelegt.

Mathematik und Geometrie

Koordinatensysteme bilden die Grundlage, um die Position und Lage in einem mehrdimensionalen Raum zu definieren. Durch Rotationen und Translationen können die Koordinatensysteme zueinander transformiert werden.

Lageänderung durch Rotation

Die Rotation eines Vektors (x,y,z)(x, y, z) erfolgt mit einer 3×33 \times 3-Matrix. Die Grundlage bildet dabei die Identitätsmatrix II, die sich dadurch auszeichnet, gemäß (1) auf der Diagonalen mit 1 und auf allen anderen Feldern mit 0 besetzt zu sein.

I=(100010001)(1) I = \begin{pmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1 \end{pmatrix} \qquad (1)

Die Identitätsmatrix sorgt dafür, dass die Rotation um die Achse erfolgt und der Wert dieser Achse gleich bleibt. Möchte man nun den Vektor (x,y,z)(x, y, z) mit RR um die zz-Achse rotieren, so bleibt der Anteil der zz-Koordinate gleich, wohingegen die Anteile xx und yy zu xx^\prime und yy^\prime verändert werden. Es resultiert die Gleichung (2) in Matrixschreibweise und (3) in Kurzform.

(xyz)=(cosϕsinϕ0sinϕcosϕ0001)*(xyz)(2) \begin{pmatrix} x^\prime\\ y^\prime\\ z^\prime \end{pmatrix} = \begin{pmatrix} \cos{\phi} & -\sin{\phi} & 0\\ \sin{\phi} & \cos{\phi} & 0\\ 0 & 0 & 1 \end{pmatrix} * \begin{pmatrix} x\\ y\\ z \end{pmatrix} \qquad (2)

v=Rz(ϕ)*v(3) \vec{v^\prime} = R_z(\phi) * \vec{v} \qquad (3)

Die Kurzform RzϕR_z{\phi} bezeichnet die Achse und den dazugehörigen Winkel, um den gedreht wird. Für eine anschließende Rotation um die yy-Achse resultiert (4).

(xyz)=(cosθ0sinθ010sinθ0cosθ)*(xyz)(4) \begin{pmatrix} x^{\prime\prime}\\ y^{\prime\prime}\\ z^{\prime\prime} \end{pmatrix} = \begin{pmatrix} \cos{\theta} & 0 & -\sin{\theta}\\ 0 & 1 & 0\\ \sin{\theta} & 0 & \cos{\theta} \end{pmatrix} * \begin{pmatrix} x^{\prime}\\ y^{\prime}\\ z^{\prime} \end{pmatrix} \qquad (4)

v=Ry(θ)*v(5) \vec{v^{\prime\prime}} = R_y(\theta) * \vec{v^\prime} \qquad (5)

Abschließend wird in diesem Beispiel um die xx-Achse rotiert. Es resultieren die Gleichungen (6) und (7).

(xyz)=(1000cosψsinψ0sinψcosψ)*(xyz)(6) \begin{pmatrix} x^{\prime\prime\prime}\\ y^{\prime\prime\prime}\\ z^{\prime\prime\prime} \end{pmatrix} = \begin{pmatrix} 1 & 0 & 0\\ 0 & \cos{\psi} & -\sin{\psi}\\ 0 & \sin{\psi} & \cos{\psi} \end{pmatrix} * \begin{pmatrix} x^{\prime\prime}\\ y^{\prime\prime}\\ z^{\prime\prime} \end{pmatrix} \qquad (6)

v=Rx(ψ)*v(7) \vec{v^{\prime\prime\prime}} = R_x(\psi) * \vec{v^\prime\prime} \qquad (7)

Dieses schrittweise Vorgehen erleichtert das Verständnis, erschwert jedoch die Rechnung. Gemäß (8) und (9) werden die einzelnen Matrizenmultiplikationen zusammengefasst. Es ist jedoch zu beachten, dass die Multiplikation von Matrizen nicht kommutativ, also nicht tauschbar, ist, da sonst eine andere Gesamtrotation resultiert.

(xyz)=(1000cosψsinψ0sinψcosψ)*(cosθ0sinθ010sinθ0cosθ)*(cosϕsinϕ0sinϕcosϕ0001)*(xyz)(8) \begin{pmatrix} x^{\prime\prime\prime}\\ y^{\prime\prime\prime}\\ z^{\prime\prime\prime} \end{pmatrix} = \begin{pmatrix} 1 & 0 & 0\\ 0 & \cos{\psi} & -\sin{\psi}\\ 0 & \sin{\psi} & \cos{\psi} \end{pmatrix} * \begin{pmatrix} \cos{\theta} & 0 & -\sin{\theta}\\ 0 & 1 & 0\\ \sin{\theta} & 0 & \cos{\theta} \end{pmatrix} * \begin{pmatrix} \cos{\phi} & -\sin{\phi} & 0\\ \sin{\phi} & \cos{\phi} & 0\\ 0 & 0 & 1 \end{pmatrix} * \begin{pmatrix} x\\ y\\ z \end{pmatrix} \qquad (8)

v=Rx(ψ)*Ry(θ)*Rz(ϕ)*v(9) \vec{v^{\prime\prime\prime}} = R_x(\psi) * R_y(\theta) * R_z(\phi) * \vec{v} \qquad (9)

Für die nachfolgende Matrix wurde sin\sin durch ss und cos\cos durch cc ersetzt. Durch Ausmultiplizieren erhält man gemäß Gleichung (10) und (11) eine gesamte Rotationsmatrix RzyxR_{zyx}. Somit minimiert man die Rechnung von drei einzelnen Rotationen zu einer einzigen Rotation. Durch Einsetzen verschiedener Winkel ϕ\phi, θ\theta und ψ\psi kann nun jeder Vektor im 3-dimensionalen Raum rotiert werden.

(xyz)=(cθcϕcθsϕsθsψsθcϕ+sϕcψsψsθsϕ+cψcϕsψcθcψsθcϕ+sψsϕcψsθsϕ+sψcϕcψcθ)*(xyz)(10) \begin{pmatrix} x^{\prime\prime\prime}\\ y^{\prime\prime\prime}\\ z^{\prime\prime\prime} \end{pmatrix} = \begin{pmatrix} c\theta~c\phi & -c\theta~s\phi & -s\theta\\ -s\psi~s\theta~c\phi + s\phi~c\psi & s\psi~s\theta~s\phi + c\psi~c\phi & -s\psi~c\theta\\ c\psi~s\theta~c\phi + s\psi~s\phi & -c\psi~s\theta~s\phi + s\psi~c\phi & c\psi~c\theta \end{pmatrix} * \begin{pmatrix} x\\ y\\ z \end{pmatrix} \qquad (10)

v=Rzyx(ϕ,θ,ψ)*v(11) \vec{v^{\prime\prime\prime}} = R_{zyx}(\phi,\theta,\psi) * \vec{v} \qquad (11)

Positionsänderung durch Translation

Wie in den vorherigen Abschnitten beschrieben, können Punkte in Form von Vektoren durch die Multiplikation mit Rotationsmatrizen gedreht werden. Als nächstes wird die Verschiebung einer Position P1P_1 auf eine Position P2P_2 betrachtet. Verallgemeinert kann das Problem gemäß (12) als Funktion formuliert werden, wobei die Position P1P_1 als Vektor v\vec{v} einer Funktion F(x)F(x) übergeben wird. Das Resultat der Funktion ist die neue Position P2P_2 als Vektor v\vec{v^\prime}.

v=F(v)(12) \vec{v^\prime} = F(\vec{v}) \qquad (12)

Die kürzeste Verbindung zwischen zwei Punkten ist stets die Gerade. Durch die Addition des Vektors v\vec{v} mit einem Vektor vTranslation\vec{v}_{Translation} wird gemäß (13) die Position P1P_1 an die Position P2P_2 verschoben, sodass die Funktion F(x)F(x) eine Vektoraddition ist.

(511)v=(230)v+(321)vTranslation(13) \begin{pmatrix} 5\\ 1\\ 1 \end{pmatrix}_{v^\prime} = \begin{pmatrix} 2\\ 3\\ 0 \end{pmatrix}_{v} + \begin{pmatrix} 3\\ -2\\ 1 \end{pmatrix}_{v_{Translation}} \qquad (13)

Die Translation eines Punktes beschreibt somit die Verschiebung entlang einer Geraden.

Transformation von Punktmengen

Durch die Rotation kann die Lage, durch die Translation die Position eines Punktes verändert werden. Werden beide Operationen in einem Schritt durchgeführt, spricht man von einer Transformation. Eine Transformation kann ebenfalls in Form einer Matrix dargestellt werden. Dazu wird die Rotationsmatrix sowie der Translationsvektor in einer 4×44 \times 4-Transformationsmatrix TT gemäß (14) abgelegt.

T=(R0R1R2ΔxR3R4R5ΔyR6R7R8Δz0001)(14) T = \begin{pmatrix} R_0 & R_1 & R_2 & \Delta x\\ R_3 & R_4 & R_5 & \Delta y\\ R_6 & R_7 & R_8 & \Delta z\\ 0 & 0 & 0 & 1\\ \end{pmatrix} \qquad (14)

Die Transformationsmatrix TT ermöglicht es nun, jeden Vektor durch Rotation zu drehen und durch Translation zu bewegen. Dadurch können nun Beziehungen zwischen mehreren Posen beschrieben werden. Anwendung findet dies zum Beispiel in der Sensortechnik, wenn Messwerte verschiedener bildgebender Sensoren auf Grund unterschiedlicher Blickrichtungen in ein gemeinsames Bezugssystem überführt werden sollen. Dabei wird jeder Punkt PnP_n einzeln in die neue Pose transformiert.

Die Rücktransformation bezeichnet die umgekehrte Transformation. Dabei wird gemäß der Matrizenrechnung von der Transformationsmatrix TT die Inverse T1T^{-1} gebildet, sodass anschließend gemäß (15) jeder Punkt rücktransformiert werden kann.

v=T1*v(15) \vec{v} = T^{-1} * \vec{v^\prime} \qquad (15)

Der Gradient als Richtung und Maß des steilsten Anstiegs

Der Gradient gg bezeichnet in der Mathematik einen Differentialoperator. Angewandt auf ein Skalarfeld2 liefert der Gradient ein Vektorfeld3.

Bezogen auf eine Landkarte, die in Form der Funktion h(x,y)h(x,y) allen Punkten in der xyxy-Ebene eine Höhe hh zuordnet, bezeichnet der Gradient g(h(x,y))g(h(x,y)) einen Vektor in der xyxy-Ebene in Richtung des steilsten Anstiegs von hh. Die Länge des Vektors ist ein Maß für die Steilheit an diesem Punkt. Die Bildung des Gradienten wird mit dem Nabla-Operator \nabla gekennzeichnet. Der Gradient wird durch die partiellen Ableitungen fxi\frac{\partial f}{\partial x_i} von ff in Richtung xix_i gebildet. Für den 3-dimensionalen Raum wird der Gradient gemäß (16) berechnet.

grad(f)=f=fxex+fyey+fzez(16) \text{grad}(f) = \nabla f = \frac{\partial f}{\partial x} \vec{e_x} + \frac{\partial f}{\partial y} \vec{e_y} + \frac{\partial f}{\partial z} \vec{e_z} \qquad (16)

Alternativ kann der Gradient als Spaltenvektor gemäß (17) dargestellt werden.

f=(fxfyfz)(17) \nabla f = \begin{pmatrix} \frac{\partial f}{\partial x}\\ \frac{\partial f}{\partial y}\\ \frac{\partial f}{\partial z} \end{pmatrix} \qquad (17)

Die Vektoren ex\vec{e_x}, ey\vec{e_y} und ez\vec{e_z} bezeichnen dabei die Einheitsvektoren in Richtung der Koordinatenachsen.

Geben sei das Skalarfeld gemäß (18).

f(x,y)=5y2+3x2(18) f(x,y) = 5y^2 + 3x^2 \qquad (18)

Dieses Skalarfeld wird gemäß (19) nach xx und (20) nach yy partiell abgeleitet.

fx=6x(19) \frac{\partial f}{\partial x} = 6x \qquad (19)

fy=10y(20) \frac{\partial f}{\partial y} = 10y \qquad (20)

Es ergibt sich der Gradiant gemäß (21) und (22) in Vektordarstellung.

grad(f)=f=6x*ex+10y*ey(21) grad(f) = \nabla f = 6x * \vec{e_x} + 10y * \vec{e_y} \qquad (21)

grad(f)=f=(6x10y)(22) grad(f) = \nabla f = \begin{pmatrix} 6x\\ 10y \end{pmatrix} \qquad (22)

Anwendung findet der Gradient unter Anderem im Bereich der Bestimmung der Optimierungsrichtung nach Levenberg-Marquardt im Abschnitt .

Sensortechnik

Umweltwahrnehmung ist für uns Menschen eine überlebenswichtige Fähigkeit. Durch unsere Sinne erkennen wir unser Umfeld, können die Umgebung klassifizieren und bedrohliche Situationen erkennen. Bedrohlich bezeichnet dabei Situationen, in denen entweder wir, unsere Mitmenschen oder unser geplantes Handeln (zum Beispiel die Durchführung eines Auftrags) gefährdet sind. Ein großer Bestandteil unserer Wahrnehmung ist visuell und erfolgt durch unsere Augen.

Visuelle Odometrie durch LiDAR-Sensoren

In automatisierten Systemen werden bildgebende Sensoren zur visuellen Wahrnehmung verwendet. Diese Sensoren erstellen in zeitlichen Abständen ein Bild, das aus Messgrößen eines realen Objektes besteht. Die Messgröße oder eine daraus abgeleitete Information hat einen geographischen Bezug und wird über Helligkeitswerte oder Farben kodiert visualisiert.

Die visuelle Odometrie, auch Ego-Motion (engl.), bezeichnet das Fachgebiet zur Schätzung von Bewegungen aus Bildinformationen. Dabei werden Veränderungen von Merkmalen (Features) aus verschiedenen Aufnahmen der Umwelt bestimmt. Welche Merkmale verwendet werden, ist abhängig von der Struktur der eingegebenen Daten.

Man unterscheidet organisierte und unorganisierte Datensätze. Organisierte Daten bezeichnen eine Matrix-ähnliche Struktur, in der die Daten in Zeilen und Spalten unterteilt sind. Sensoren, die organisierte Daten erzeugen, sind zum Beispiel Digitalkameras oder -Kameras. Der Vorteil von organisierten Daten ist, dass durch die Kenntnis von Beziehungen zwischen benachbarten Punkten (z.B. Pixeln), Algorithmen, wie die Suche nach dem nächsten Nachbarn, effizienter gestaltet werden können.

Des Weiteren ist die Erkennung von Merkmalen abhängig von der Qualität der vorliegenden Messungen. Qualität bezeichnet dabei das Zueinanderpassen mehrerer Datensätze. Unterschiede, die durch Rotation, Translation, Skalierung oder Messrauschen verursacht werden, erfordern unterschiedliche Ansätze zur Extraktion von Merkmalen. In dieser Arbeit werden statische Posen der Sensoren zueinander vorausgesetzt. Das heißt, dass Unterschiede zwischen verschiedenen Bildern rein aus der Bewegung der Sensorplattform (Träger) und aus systembedingten Messfehlern resultieren.

Exemplarischer Aufbau und Funktionsweise eines LiDARs

-Sensoren dienen der optischen Abstandsmessung. Einsatzgebiete sind unter anderem topographische Geländeaufnahmen (Kartographie) (Lindenberger 1993), Detektion und Tracking von Hindernissen (Mendes et al. 2004) und die Identifikation atmosphärischer Eigenschaften (Wulfmeyer/Bösenberg 1998; Browell et al. 1998).

Figure 1. Schematischer Aufbau eines LiDAR nach Kern (2003)

Ein besteht exemplarisch gemäß Abbildung 1 aus einem als Emitter, einer Photodiode als Detektor, einer Signalverarbeitungseinheit, einem Modulator und einem Gehäuse. Die Laserquelle erzeugt energiereiches Licht, das anschließend das Gehäuse verlässt. Der am Hindernis reflektierte Laserstrahl trifft auf den Detektor im Gehäuse, um nach verschiedenen physikalischen Eigenschaften ausgewertet zu werden.

Funktionsweise eines LASERs

Laserlicht entsteht durch Absorption und spontane sowie stimulierte Emission von Ladungsträgern in einem aktiven Medium (das Material des s).

Absorption

Absorption bezeichnet den Vorgang, bei dem die Energie eines Photons von einem Elektron aufgenommen wird und es dadurch auf ein höheres Energieniveau gebracht wird.

Emission

Nach einer gewissen Verweilzeit auf dem höheren Energieniveau fällt das Elektron wieder auf das niedere Energieniveau hinab, wobei ein Photon mit der Energiedifferenz der Niveaus emittiert wird. Dieser Vorgang bezeichnet die spontane Emission. Zusätzlich kann der Übergang gezielt durch den photoelektrischen Effekt ausgelöst werden (stimulierte Emission).

Durch die wechselseitige Absorption und Emission kann es zu einer Verstärkung des Lichts im kommen. Dafür ist es notwendig, dass die resultierende elektromagnetische Welle weniger durch Absorption geschwächt, als durch Emission verstärkt wird. Dies erreicht man durch eine Besetzungsinversion (es befinden sich mehr Teilchen auf dem höheren Energieniveau). Durch konstantes “Pumpen”, zum Beispiel durch Anlegen einer elektrischen Spannung, wird das aktive Medium in der Besetzungsinversion gehalten.

Aufbau eines LASERs

Um eine Verstärkung des Lichts zu ermöglichen, ist der in Form eines Resonators aufgebaut. Das aktive Medium befindet sich zwischen zwei Spiegeln, an denen die elektromagnetische Welle reflektiert wird.

Das aktive Medium befindet sich zwischen zwei Spiegeln, die im Abstand dd angeordnet sind. Ein Spiegel ist halbdurchlässig, das heißt er reflektiert nur einen Teil der elektromagnetichen Welle und transmittiert den Rest (R<1R<1). Die effektive optische Weglänge des Lichts im Resonator LL ist abhängig vom Brechungskoeffizienten nn und errechnet sich gemäß L=n*dL = n * d.

unterscheiden sich im verwendeten aktiven Medium, der erzeugten Energiedichte in Form von Sicherheitsklassen sowie dem Betriebsmodus. Als Betriebsmodi unterscheidet man Dauerlicht- oder Pulsbetrieb. Dauerlichtbetrieb erzeugt einen konstanten Laserstrahl geringer Energiedichte, wohingegen der Pulsbetrieb kurze Lichtimpulse mit hoher Energiedichte ermöglicht. Aktive Medien sind Festkörper, Gase, Farbstoffe und Halbleiter. Sie ermöglichen Laserlicht unterschiedlicher Wellenlängen, Bandbreiten und Energiedichten.

Optische Eigenschaften des LASERs

Durch die exakte Abstimmung des optischen Verstärkers und des Resonators entsteht ein divergentes, monochromatisches Licht hoher Energiedichte.

Monochromatisch

Ein erzeugt Licht einer schmalen spektralen Bandbreite, weswegen es als monochromatisch bezeichnet wird. Die Wellenlänge des Lichts ist dabei abhängig vom verwendeten aktiven Medium. Durch die Kombination verschiedener optischer Effekte können auch mehrere Wellenlängen im erzeugt werden.

Zeitliche und räumliche Kohärenz

Kohärenz bezeichnet die Gleichartigkeit und Gleichförmigkeit mehrerer Lichtwellen. Zeitliche Kohärenz ist bei Laserstrahlen in Form von Interferenzmustern aus Wellenbergen und Wellentälern zu beobachten. Räumliche Kohärenz bezeichnet das Maß, inwieweit sich zwei Wellenzüge aus der gleichen Quelle in unterschiedlichen Richtungen, an unterschiedlichen Orten zur selben Zeit unterscheiden.

Divergenz

Im erzeugtes Licht ist divergent, das heißt, der Durchmesser des Laserstrahls weitet sich relativ zu seiner Ausbreitungsgeschwindigkeit auf. Der Grund besteht in der Beugung des Strahls beim Austritt aus dem Gehäuse. Der Laserstrahl kann durch eine Sammellinse gebündelt werden, wodurch jedoch auch die Intensität des Strahls sinkt.

Absorption, Transmission und Reflexion

Trifft der Laserstrahl auf ein Hindernis, so wird er teilweise vom Hindernis absorbiert (aufgenommen), transmittiert (durchgelassen) und reflektiert (zurückgeworfen). Wie stark sich der jeweilige Effekt auswirkt, ist abhängig von der Beschaffenheit der Hindernisse, dem Winkel zwischen auftreffendem Laserstrahl und Hindernis sowie der Wellenlänge des Laserstrahls.

Gemäß Abbildung bezeichnet die Reflexion das Zurückstrahlen auf einer Ebene. Dabei ist der Eintrittswinkel α\alpha gleich dem Austrittswinkel β\beta, gemessen zum Lot der Reflexionsfläche. Daraus resultiert, dass idealisierte parallele Strahlen auch wieder parallel reflektiert werden.

Treffen die Lichtstrahlen jedoch auf eine unebene Fläche, so kommt es gemäß Abbildung auf Grund von Streuung zur diffusen Reflexion. Die ankommenden, idealisiert-parallelen Strahlen werden normalverteilt von der Oberfläche reflektiert.

Treffen die Lichtstrahlen auf durchlässige Hindernisse, so kommt es an der Oberfläche neben Reflexion auch zur Beugung und Transmission. Die vom ausgesendete elektromagnetische Welle wird somit teilweise von den Hindernissen absorbiert, teilweise zurückgeworfen. Durch die optischen Wechselwirkungen hat die elektromagnetische Welle an Leistung verloren und unter anderem eine Phasenverschiebung erfahren. Die Photodiode am wertet anschließend das empfangene Signal gegenüber dem versendeten Signal aus.

Messen von Entfernungen

-Sensoren werden zur Messung von Entfernungen zwischen Sensor und Umgebung verwendet. Hauptsächlich unterscheidet man zwischen der Messung der Signallaufzeit, der Phasenverschiebung und der Triangulation. Durch die Auswertung der Intensität der reflektierten Laserstrahlen können Aussagen über das Material und den Aggregatzustand des gemessenen Hindernisses gemacht werden.

Messung der Signallaufzeit

Die Bestimmung von Entfernungen durch Messung der Signallaufzeit entspricht der Funktionsweise des . Mit der Auskopplung des Laserstrahls wird am eine Zeitmessung gestartet. Durch Differenzbildung von Austritts- und Eintrittszeitpunkt des Laserstrahls wird gemäß (23) die Laufzeit bestimmt.

tLaufzeit=tEintritttAustritt(23) t_{Laufzeit} = t_{Eintritt} - t_{Austritt} \qquad (23)

Da die gemessene Laufzeit den Hin- und Rückweg bezeichnet, hat der Laserstrahl die doppelte Wegstrecke zurückgelegt. Mit der Ausbreitungsgeschwindigkeit von Licht cc wird die halbierte Laufzeit gemäß (24) multipliziert.

s=tLaufzeit2*c(24) s = \frac{t_\text{Laufzeit}}{2} * c \qquad (24)

Die erhaltene Wegstrecke ss ist die Entfernung zwischen dem -Sensor und dem Hindernis.

Messung der Phasenverschiebung

Die Ausbreitungsgeschwindigkeit von Licht ist abhängig von dem Medium, in dem es sich bewegt. Durch den Zusammenhang zwischen Lichtgeschwindigkeit cc und Wellenlänge λ\lambda kann gemäß (25) die Frequenz berechnet werden.

c=λ*f(25) c = \lambda * f \qquad (25)

Die Frequenz ff ist dabei gemäß (26) direkt in die Kreisfrequenz ω\omega umformbar. Durch Bildung des Verhältnisses zwischen der gemessenen Phasenverschiebung δ\delta und der konstruktionsbedingten Kreisfrequenz ω\omega kann gemäß (27) die Signallaufzeit des Laserstrahls berechnet werden.

ω=2*π*f(26) \omega = 2 * \pi * f \qquad (26)

tLaufzeit=δω(27) t_{Laufzeit} = \frac{\delta}{\omega} \qquad (27)

Anhand des vorherigen Abschnitts kann aus der berechneten Laufzeit der Abstand zwischen Hindernis und Sensor bestimmt werden.

Messung durch Triangulation

Einige -Sensoren ermitteln den Abstand zu einem Hindernis mittels Triangulation. Der Detektor eines solchen Systems besteht aus einer Kamera, einer ortsauflösenden Photodiode oder einer -Zelle. Der emittierte Laserstrahl wird je nach Entfernung in einem unterschiedlichen Winkel auf dem Detektor wahrgenommen, sodass sich auch die Position des Abbildes am Detektor ändert. Dafür wird der Abstand zwischen Emitter und Detektor dd benötigt.

Der Detektor wird so ausgerichtet, dass der Laserstrahl bei einer mittleren Entfernung auch mittig auf dem Sensor detektiert wird. Dieser Winkel zwischen der Ausrichtung des Detektors und der Emitter-Detektor-Achse wird als α\alpha bezeichnet.

Bewegt man das Hindernis, so resultiert die veränderte Distanz in einer Änderung des Auftreffwinkels δ\delta. Dieser Winkel ändert sich proportional zur gemessenen Position des reflektierten Laserstrahls im Detektor.

Nun kann der Abstand ss zwischen der Emitter-Detektor-Einheit und dem Hindernis berechnet werden.

s=d*tan(α+δ)=d*tanα+tanδ1tanα*tanδ(28) s = d * \tan{(\alpha + \delta)} = d * \frac{\tan{\alpha} + \tan{\delta}}{1 - \tan{\alpha} * \tan{\delta}} \qquad (28)

Messtechnische Besonderheiten

Für diese Arbeit werden -Sensoren verwendet, die Entfernungen zu Hindernissen mittels Laufzeitmessung bestimmen. Diese Messvariante unterliegt dabei verschiedenen Einflüssen.

Abschattung

Abschattung bezeichnet die Problematik, dass Hindernisse, die sich in hinter anderen Hindernissen befinden, nicht durch -Sensoren gemessen werden können. Es kann somit nur eine Aussage über die Umgebung bis zum ersten Hindernis gemacht werden.

Teildurchlässigkeit

Je nach aktivem Medium werden die Laserstrahlen von Hindernissen, wie Glas oder Wasser, stärker transmittiert, reflektiert oder absorbiert. Bei der Verwendung von einer grünen Laserstrahlung (500\approx 500 nm 600\to 600 nm) werden die Strahlen an Glas hauptsächlich transmittiert, sodass Hindernisse aus diesem Material nicht detektiert werden können. Für die bathymetrische Vermessung4 werden aus diesem Grund Feststofflaser wie Nd:YAG (Neodym-dotierter Yttrium-Aluminium-Granat) verwendet, die kollineare Laserpulse zweier Wellenlängen (Rot 1064\equiv 1064 nm für die Wasseroberfläche und Grün 532\equiv 532 nm für den Untergrund) erzeugen.

Messen in Bewegung

-Sensoren übertragen ihre Messwerte meist in Datenpaketen. Diese Datenpakete bestehen aus zusammengefassten Messreihen, denen ein Zeitstempel zugeordnet wird. Wird der während seiner Messung bewegt, müssen die Zeitstempel zwischen den einzelnen Messungen interpoliert werden, da sonst der geographische Bezug der Datenpunkte verfälscht wird.

Messung der inertialen Bewegung und globalen Position

Lage und Position im 3-dimensionalen Raum werden als bezeichnet, wobei die 6 Freiheitsgrade in 3 translatorische und 3 rotatorische Freiheitsgrade unterteilt werden. Die translatorischen Freiheitsgrade definieren die Position bezüglich xx-, yy-, und zz-Achse in einem Koordinatensystem. Die rotatorischen Freiheitsgrade bestimmen die Lage an dieser Position durch Rotationen um die Koordinatenachsen. Gemäß Tabelle 1 werden die 3 Eulerschen Winkel Φ\Phi (Phi), Θ\Theta (Theta) und Ψ\Psi (Psi) verwendet.

Table 1. Bezeichnung der Winkel gemäß DIN 9300 / ISO 1151-2:1985.
Bezeichnung Winkel Rotationsachse
Rollwinkel (Roll) Φ\Phi xx^{\prime\prime}
Nickwinkel (Pitch) Θ\Theta yy^\prime
Gierwinkel (Yaw) Ψ\Psi zz

Das Bezugssystem ist das . Dabei handelt es sich um ein geodätisches Referenzsystem, das eine einheitliche Positionsangabe auf der Erde und im erdnahen Weltraum ermöglicht. Die Bestandteile sind ein Referenzellipsoid, ein zusätzliches detailliertes Modell gemäß Lemoine et al. (1998) und einem Satz dreidimensionaler Koordinaten von 12 über der Erde verteilten Fundamentalstationen. Das Zentrum des Koordinatensystems ist der Massenschwerpunkt der Erde inklusive der Atmosphäre. Die Orientierung der Achsen ist relativ zum Referenzmeridian und Referenzpol. Die zeitliche Entwicklung (die schrittweise Nummerierung der Längengrade) folgt zudem der Rotation der Erdkruste.

Globale Positionsbestimmung durch Satellitensysteme

werden zur absoluten Positionsbestimmung im 3-dimensionalen Raum nach dem eingesetzt. Die bekanntesten eingesetzten Systeme sind das vom russischen Verteidigungsministerium eingesetzte , das chinesische BeiDou, Galileo der und der Europäischen Union und das amerikanische . In dieser Arbeit wird das verwendet, dessen Aufbau sowie die Funktionsweise im Folgenden erläutert werden.

Aufbau

Das -System besteht gemäß The United States Government (1995) aus einem Weltraumsegment, einem Kontrollsegment und einem Benutzersegment.

Das Weltraumsegment

Das Weltraumsegment umfasst 24 bis 32 Satelliten, die in einer mittleren Bahnhöhe von 20.20020.200 km zweimal pro Sterntag5 um die Erde kreisen. Die Satelliten sind dabei so verteilt, dass überall auf der Erde und zu jeder Zeit ein -Empfänger die Signale von mindestens vier Satelliten empfangen kann. Dabei sind die Satelliten um 5555^\circ gegen die Äquatorebene inkliniert (geneigt) und gegeneinander um jeweils 6060^\circ verdreht. Jeder Satellit sendet kontinuierlich ein Datensignal von insgesamt 37.500 Bit mit einer Datenrate von 50 Bit/s. Die vollständige Übertragung benötigt somit circa 12,5 Minuten. Als gemeinsame Zeitbasis werden in den einzelnen Satelliten mehrere Atomuhren eingesetzt, die es ermöglichen, dass die Satelliten bis zu 101410^{-14} Sekunden synchron laufen.

Das Datensignal setzt sich dabei aus 25 Frames zusammen. Die Frames sind wiederum in fünf Subframes unterteilt, deren erstes Wort das telemetry word ist. Das telemetry word enthält Informationen zur Aktualität der Ephemeridendaten.6 Es folgt das hand over word, das die Anzahl der sogenannten Z-Epochen seit dem letzten Sonntag 0 Uhr enthält.

Nach diesen zwei Wörtern folgen im ersten Subframe die Daten zur Genauigkeit, dem Zustand und den Uhrenkorrekturwerten des sendenden Satelliten. Im zweiten und dritten Subframe werden die Ephemeridendaten übertragen. Das vierte Subframe enthält das sogenannte Refraktionsmodell sowie die Almanachdaten7 der Satelliten 25 bis 32. Das Refraktionsmodell besteht aus Ionosphärenkorrekturdaten, speziellen Nachrichten sowie -Zeitinformationen. Das letzte Subframe enthält die Almanachdaten der Satelliten 1 bis 24 sowie die Uhrzeit des Satelliten und die -Wochennummer. Die -Zeit unterscheidet sich dabei von der -Zeit. Die -Zeit wird mit Hilfe von Schaltsekunden regelmäßig der Erddrehung angepasst. Die -Zeit nicht, sodass sie sich aktuell circa 19 Sekunden unterscheiden.

Das Kontrollsegment

Das Kontrollsegment dient der Überwachung des Weltraumsegments. Jeder Satellit wird bezüglich seiner Bewegung und seines technischen Zustandes in Kontrollzentren auf der Erde beobachtet, die Ephemeriden- sowie die Almanachdaten berechnet und die Zeiten der Satelliten synchronisiert. Diese neuen Informationen werden im Anschluss an alle in Kontakt stehenden Satelliten übertragen (bei alle 2 Stunden). Befindet sich ein Satellit nicht auf seiner gewünschten Umlaufbahn, wird der Satellit als not good markiert, die Triebwerke werden gezündet und der Satellit wird neu positioniert. Sobald sich die Umlaufbahn des Satelliten wieder stabilisiert hat, wird der Status wieder auf good gesetzt.

Das Benutzersegment

Das Benutzersegment bezeichnet den -Empfänger der Satellitendaten. Er besteht aus mindestens einer Antenne, einer Berechnungseinheit sowie, aus Kostengründen und Machbarkeit, aus einer einfachen Quarzuhr. Der Empfänger dient der Berechnung der globalen Position, die durch Auswertung der Satellitensignale bestimmt wird. Satelliten, die vom Kontrollsegment als not good markiert wurden, werden von den -Empfängern ignoriert, da sonst die Betrachtung ihrer Daten zu Berechnungsfehlern führt.

Wurde der Empfänger komplett von der Spannungsversorgung getrennt, spricht man von einem cold start. Dabei muss die interne ungenaue Uhr mit der Satellitenzeit synchronisiert werden. Im Anschluss werden alle Almanach- und Ephemeridendaten empfangen, was im schlimmsten Fall auf Grund der Datenrate bis zu 12,5 Minuten dauern kann. Durch Auswertung der Almanachdaten und der Vorgabe einer groben Position durch den Anwender kann die Zeit bis zur Positionsbestimmung reduziert werden.

War der Empfänger weniger als 2 Stunden außer Betrieb, mit einer Spannungsversorgung verbunden und weniger als 300 km von der letzten bekannten Position entfernt, so spricht man von einem hot start. In diesem Modus werden Daten von bereits bekannten Satelliten empfangen. Treffen die Bedingungen für einen hot oder cold start nicht zu, spricht man von einem warm start.

Funktionsweise

Die Grundlage der Positionsbestimmung mittels ist die Entfernungsmessung zwischen einem Empfänger zu mehreren Sendern. Die Sender sind dabei die Satelliten, die auf höheren Erdumlaufbahnen kreisen. Das Verfahren zur Positionsbestimmung heißt Trilateration. Die Position der Satelliten ändert sich auf Grund der stetigen Bewegung auf ihren Umlaufbahnen. Somit ist auch die Position der Satelliten im Verhältnis zum Empfänger stets unterschiedlich. Durch Betrachtung der Ephemeriden- und Almanachdaten kann der Empfänger die Satellitenstandorte zu jedem Zeitpunkt berechnen. Bei und Galileo handelt es sich bei den Ephemeriden um keplersche Bahnelemente8, wohingegen es bei Koordinaten-, Geschwindigkeits- und Beschleunigungsvektoren sind.

Die Satelliten vermerken den Sendezeitpunkt einer Übertragung im -Zeitsystem, beim Empfang setzt das Bodensegment den Empfangszeitpunkt. Durch Differenzbildung von Empfangs- und Sendezeitpunkt kann theoretisch durch Betrachtung der Lichtgeschwindigkeit die Entfernung zwischen Satellit und Empfänger bestimmt werden. Diese momentane Entfernung ist auf Grund von Fehlern der Uhren (Empfänger und Satellit) und weiteren Einflüssen wie atmosphärischen Eigenschaften ungenau.

Abbildung zeigt die Auswirkungen, die die Anzahl der Satellitenzahl auf die Positionsbestimmung bei hat. Ein einzelner Satellit reicht gemäß Abbildung nur zur Positionsbestimmung des Empfängers auf einer Kugeloberfläche rund um die aktuelle Position des Satelliten aus. Durch einen zweiten Satelliten wird die potenzielle Position des Empfängers auf den Umkreis des Schnitts der zwei Satellitenkugeln reduziert. Trotz eines dritten Satelliten ist die Positionsbestimmung im Schnittpunkt aller Kugelschnitte nicht eindeutig, da der Empfänger meist mit einer ungenaueren Uhr ausgestattet ist, als die Satelliten.

Die Empfängeruhr wird durch sogenanntes Pseudoranging synchronisiert. Dabei werden Pseudostrecken herangezogen, die von den wahren Distanzen um einen konstanten, aber vorerst unbekannten Betrag abweichen. Im 2-dimensionalen Raum werden dazu durch den Schnitt von zwei Bögen gemäß Abbildung zwei Schnittpunkte gefunden. Einer der beiden Schnittpunkte kann aus Grund der Plausibilität vernachlässigt werden. Im 3-dimensionalen Fall handelt es sich dabei nicht um zwei Schnittpunkte, sondern den Umkreis, der durch den Schnitt zweier Kugeln entsteht. Weichen nun beide Bögen im Radius um den gleichen konstanten aber unbekannten Wert ab, werden die Schnittpunkte fehlerhaft. Man spricht dann von einem schleifenden Schnitt. Durch die Messung eines dritten, um den gleichen konstanten unbekannten Wert abweichenden Bogens erhält man gemäß Abbildung ein krummliniges Fehlerdreieck, dessen Mittelpunkt der gesuchten Position entspricht. Analog zum 2-dimensionalen Fall benötigt man demzufolge im 3-dimensionalen Raum gemäß Abbildung 4 Bögen beziehungsweise Satelliten.

Durch die Verwendung von kann die Genauigkeit von gesteigert werden. Dabei werden Korrekturdaten für das Bahn- und Zeitsystem durch vorher vermessene, ortsfeste Referenzstationen ausgestrahlt und bei kompatiblen Empfängern zur Berechnung einbezogen.

Besitzt der Empfänger eine zusätzliche -Antenne, die in einem bekannten Abstand montiert ist, so können zusätzliche Winkelinformationen (das Heading) berechnet werden. Durch Auswertung der Phasenverschiebung und des Antennenabstandes wird der Winkel zwischen Antennenverbindungsachse zu den Ephemeriden des Satelliten sowie gegen die Nordrichtung bestimmt. Geräte dieser Kategorie bezeichnet man als elektronischer Kompass oder -Kompass.

Fehlerbetrachtung

Die Genauigkeit der Positionsbestimmung mittels unterliegt verschiedenen physikalischen und politischen Einflüssen.

Selective Availability

Bis zum 02. Mai 2000 wurde gemäß The National Coordination Office for Space-Based Positioning, Navigation, and Timing (2013) durch die selective availability ein künstlicher Fehler zugeschaltet. Dabei wurde das Taktsignal einem Jitter (eine geringe zeitliche Schwankung) ausgesetzt. Dies resultiert in einem Fehler der Positionsbestimmung von mehreren 100 m.

Satellitengeometrie

Die Positionierung zwischen Empfänger zu den empfangenen Satelliten bezeichnet man als Satellitengeometrie. Befinden sich die Satelliten in hauptsächlich einer Richtung, vergrößert sich der Bereich der potenziellen Positionen des Empfängers. Dieses Problem tritt zum Beispiel bei konstanter Abschirmung der Signale aus einer bestimmten Richtung auf. Die Positionsbestimmung ist dabei entweder gar nicht oder nur auf bis zu 150 m möglich. Als Güte der Satellitengeometrie sind im Allgemeinen die -Werte (Verschlechterung der Genauigkeit) sehr verbreitet. Abhängig von den zur Berechnung herangezogenen Daten unterscheidet man gemäß Tabelle 2 verschiedene Güte-Kategorien.

Table 2. Kategorien verschiedener DOP-Werte nach Köhne/Wößner (2008).
-Wert Genauigkeit herangezogene Daten
Geometric Dilution Of Precision (GDOP) Gesamt 3D-Koordinaten + Zeit
Positional Dilution Of Precision (PDOP) Position 3D-Koordinaten
Horizontal Dilution Of Precision (HDOP) Horizontal 2D-Koordinaten
Vertical Dilution Of Precision (VDOP) Vertikal Höhe
Time Dilution Of Precision (TDOP) Zeit Zeit
Satellitenumlaufbahnen

Trotz regelmäßiger Korrektur der Ephemeridendaten durch das Kontrollsegment kommt es durch Gravitation von Sonne und Mond zu Bahnfehlern. Diese wirken sich mit einer Abweichung von circa zwei Metern auf die Genauigkeit der Positionsbestimmung aus.

Mehrwegeausbreitung

Durch lokale Abschirmung unter Bäumen, unter Brücken, in oder zwischen Gebäuden wird zudem das Satellitensignal gestört, geblockt oder gelangt durch Mehrwegeausbreitung zum Empfänger. Die reflektierten Signale legen eine längere Strecke als Signale im Direktweg zurück und kommen zeitlich versetzt am Empfänger an. Durch Reflexionen ändert sich die Polarisation des Satellitensignals, sodass der Effekt durch eine geeignete Konstruktion der Antennen minimiert werden kann.

Atmosphärische Eigenschaften

Einen weiteren Einfluss auf die Genauigkeit hat der Zustand der Ionosphäre und der Troposphäre. Je nach Elevationswinkel des Satelliten wird eine größere Strecke durch die Schichten der Atmosphäre zurückgelegt, was zum Beispiel Effekte der Refraktion verstärkt. Zusätzlich verursacht die Schwankungsbreite der Anzahl der freien Elektronen in der Ionosphäre einen Fehler von circa 30 m in der Positionsbestimmung. Durch Auswertung der 6 Ionosphärenparameter der Satelliten kann der Fehler auf unter 10 m reduziert werden. Durch die Verwendung zweier unterschiedlicher Frequenzen zur Übertragung der Satellitensignale kann zudem die Einwirkung der Atmosphäre herausgerechnet werden.

Zeitungenauigkeiten und Rundungsfehler

Trotz Synchronisation der Uhr des Empfängers bleibt die Ungenauigkeit der Satellitenuhr. Durch zusätzliche Rundungsfehler im Empfänger steigt diese Ungenauigkeit um 1 - 3 m.

Zusammenfassend kann man sagen, dass die Bestimmung der Position mittels bis zu circa 12 m genau ist. Durch die Verwendung von wird die Genauigkeit auf 0,3 - 2,5 m für die Position (xx, yy) und 0,2 - 5 m für die Höhe gesteigert. Durch die zusätzliche Auswertung der Phasenverschiebung kann die Genauigkeit auf 1 - 10 mm pro km Abstand zur Referenzanlage verbessert werden.

Durch die Verwendung einer sogenannten -Lösung werden Positionsdaten zwischen einer Referenzantenne zur bewegten Antenne (Rover) mittels einer Mobilfunkverbindung übertragen. Diese Daten ermöglichen eine Positionsgenauigkeit (xx, yy) von 1 - 2 cm und einer Höhengenauigkeit von circa 2 - 3 cm.

Bestimmung von Lage und Ausrichtung durch Inertiale Messeinheiten

Inertialsensoren messen anhand der Trägheit von intern verbauten, quantitativ bekannten Massen die durch eine Bewegung einwirkende Beschleunigung und Drehrate. Durch die Kombination mehrerer Inertialsensoren in einer können so die Bewegungen in allen bestimmt werden.

Aufbau

Grundsätzlich besteht eine aus Beschleunigungs- und Drehratensensoren. Die Beschleunigungssensoren messen die Beschleunigung entlang 3 orthogonal zueinander stehenden Hauptachsen xx, yy und zz. Durch die Drehratensensoren können zudem die Rotationen um diese Hauptachsen gemessen werden.

Ursprünglich verwendete man seismische Massen. Eine seismische Masse bezeichnet eine in der Messachse beweglich aufgehängte träge Masse. Auf Grund der Massenträgheit wurden die Bewegungsänderungen der Massen gemessen. In Folge der Miniaturisierung verwendet man heutzutage sogenannte . Dabei handelt es sich um gefedert aufgehängte Siliziumstege im μ\mum Bereich. Bei einer Beschleunigung werden die Stege ausgelenkt, was in der Änderung der elektrischen Kapazität zu einer festen Bezugselektrode messbar ist.

Funktionsweise

Inertialsensoren bestimmen den Betrag und die Richtung der Beschleunigung a(t)a(t) eines Massepunktes mm im Raum. Gemäß des zweiten Newtonschen Gesetzes (Gleichung (29)) wird bei festgelegten Anfangsbedingungen durch einfache Integration über die Zeit die Geschwindigkeit v(t)v(t) bestimmt. Durch die zweifache Integration erhält man die Positionsänderung s(t)s(t).

JFJ=m*a(t)=m*vt=m*2st2(29) \sum_J{F^J} = m * a(t) = m * \frac{\partial v}{\partial t} = m * \frac{\partial^2 s}{\partial t^2} \qquad (29)

Sind die Anfangsgeschwindigkeit sowie der Ausgangspunkt bekannt, so folgt durch die Integration ein absoluter Ort nach der Verschiebung des Sensors.

Durch Drehratensensoren wird die Winkelgeschwindigkeit entlang einer Drehachse gemessen. Die Winkelgeschwindigkeit kann dabei je nach verwendetem Medium anhand zweier Messprinzipien ermittelt werden:

Die Corioliskraft bezeichnet gemäß Kuchling (2011) die Kraft, die auf einen sich bewegenden Körper auf einem rotierenden Bezugssystem wirkt. Der bewegte Körper beschreibt trotz radialer Bewegung (nach innen oder außen) eine Bahnkurve, die auf seiner Trägheit beruht.

Bei dem Sagnac-Effekt handelt es sich um die Beobachtung einer relativistischen Eigenschaft. Gemäß Demtröder (2013) wird bei einem Sagnac-Interferometer eine ebene Lichtwelle in zwei Teilwellen aufgeteilt, durch Spiegel um eine Fläche AA umgelenkt und anschließend wieder überlagert. Im Ruhezustand sind die Strecken für beide Teilwellen gleich lang, wodurch am Detektor die maximale Intensität gemessen wird. Rotiert man nun das gesamte Interferometer, verlängert sich die zurückzulegende Strecke für eine Teilwelle, für die andere verkürzt sie sich. Das Resultat ist eine Phasendifferenz Δϕ\Delta\phi zwischen den beiden Teilwellen und eine Änderung in der Intensität II im Überlagerungsgebiet.

Gemäß Gleichung 30 ist die zu messende Intensität I(Δϕ)I(\Delta\phi) abhängig von der Phasendifferenz Δϕ\Delta\phi.

I(Δϕ)=12*I0*(1+cosΔϕ)(30) I(\Delta\phi) = \frac{1}{2} * I_0 * (1 + \cos{\Delta\phi}) \qquad (30)

Die Phasendifferenz wiederum ist gemäß Gleichung 31 abhängig vom Winkel zwischen der Flächennormalen und der Drehachse Θ\Theta, der Kreisfrequenz der Drehung Ω\Omega, der zu umlaufenden Fläche AA und der Wellenlänge des verwendeten Lichts λ\lambda.

Δϕ=8*π*Ac*λ*Ω*cosΘ(31) \Delta\phi = \frac{8 * \pi * A}{c * \lambda} * \Omega * \cos{\Theta} \qquad (31)

Durch das Experiment von Michelson (1925) konnte mit dem Sagnac-Interferometer die Rotation der Erde nachgewiesen werden. Laser-Kreisel bieten heutzutage bereits auf kleineren Flächen die Möglichkeit, Rotationen mithilfe des Sagnac-Effekts zu messen. Aus messtechnischen Gründen wurde das Messverfahren abgewandelt.

Durch die Interferenz von Teilauskopplungen beider Strahlen kann man eine Differenzfrequenz als Schwebung beobachten, das heißt, die Interferenzstreifen wandern je nach Drehrichtung nach links oder rechts. Durch Messung der Amplitudenmodulation der interferierenden Strahlen mit einer Fotodiode kann die Differenzfrequenz der Strahlen berechnet werden.

Fehlerbetrachtung

Der größte Fehler bei einer entsteht durch den sogenannten Kreiseldrift. Mechanische Unwuchten am Kreisel führen zu einem unvermeidlichen Drift des Kreisels. Diese Unwuchten im Rotor (Kreiselkörper) haben teilweise ihren Ursprung in Fertigungstoleranzen und sind abhängig von der Umgebung des Kreisels.

Präzession

Wirkt eine mechanische Kraft ein senkrechtes Drehmoment auf die Rotationsachse des Rotors aus, so wird die Kreiselachse abgelenkt, es kommt zur Präzession.

Nutation

Wirkt ein Impuls auf einen rotierenden Kreisel, der nicht parallel zum minimalen oder maximalen Trägheitsmoment ausgerichtet ist, vollführt der Kreisel eine Nickbewegung. Diese Nickbewegung bezeichnet man als Nutation.

Durch Schwankungen der Temperatur, Wechselwirkungen mit den Beschleunigungssensoren, Lagerreibung oder mechanische Stöße sowie Vibrationen wird die Messung zudem erschwert.

Bei der Verwendung von Laser-Kreiseln kommt es zu einem weiteren Fehler, der als Lock-In-Effekt bezeichnet wird. An jedem Spiegel treten neben der Reflexion und Transmission auch Streuung auf, wodurch ein gewisser Teil des gestreuten Lichts entgegen der Umlaufrichtung eingekoppelt wird. Bei kleinen Drehraten resultiert daraus, dass beide Laserschwingungen die gleiche Frequenz haben. Dieser lineare Fehler ist abhängig von der Stärke der Streuung, die durch Staubteilchen und Temperaturschwankungen im System gesteigert wird.

Es ist zu erkennen, dass der Großteil der Fehler einer konstruktionsbedingt ist. Nach Edwan (2013) unterteilt man ’s gemäß den Tabellen 3 und 4 in die Produktkategorien, in denen sie hauptsächlich verwendet werden. Die Kategorisierung ist dabei abhängig von der Genauigkeit, die für die Anwendung gefordert wird.

Table 3. Kategorisierung von Drehratensensoren in Inertialen Messeinheiten.
Kategorie Bias Stabilität [h]\left[\frac{^\circ}{h}\right] Skalierungsfaktor [PPM]\left[PPM\right] Grundrauschen [hHz]\left[\frac{^\circ}{\frac{h}{\sqrt{Hz}}}\right]
Consumer >200>200 - 180180
Automotive 1020010-200 >500>500 180180
Tactical 1101-10 200500200-500 123012-30
Navigation I 0.1100.1-10 100200100-200 3123-12
Navigation II <0.01<0.01 5505-50 0.120.30.12-0.3
Table 4. Kategorisierung von Beschleunigungssensoren in Inertialen Messeinheiten.
Kategorie Bias Stabilität [μg]\left[\mu g\right] Skalierungsfaktor [PPM]\left[PPM\right] Grundrauschen [μgHz]\left[\frac{\mu g}{\sqrt{Hz}}\right]
Consumer 24002400 - 10001000
Automotive 12001200 >1000>1000 10001000
Tactical 200500200-500 4001000400-1000 200400200-400
Navigation I 5010050-100 100200100-200 5050
Navigation II 5105-10 102010-20 5105-10

Verbesserung der Genauigkeit durch Koppelnavigation

Koppelnavigation bezeichnet die kontinuierliche Ortsbestimmung eines bewegten Objekts auf Grund der Bewegungsrichtung (Kurs) und Geschwindigkeit (Fahrt). Durch die Kombination von und einer werden die Vor- und Nachteile der einzelnen Systeme ausgeglichen und eine kontinuierliche Bestimmung der Pose ermöglicht.

Zum Einschaltzeitpunkt ermöglicht das auf Grund von veralteten Ephemeriden keine absolute Positionsbestimmung, durch die Verwendung der kann jedoch eine relative Positionsbestimmung durch Bewegung durchgeführt werden. Das bietet sekündlich neue Positionsinformationen, während dazwischen mit Hilfe der die Position interpoliert wird.

Durch den unvermeidlichen Drift eines Kreisels weicht der gemessene Kurs vom realen Kurs über die Zeit ab. Heutige Kreiselsysteme bieten einen minimalen Drift von circa 0.010.01^\circ pro Stunde. Auf Grund dieser Abweichung rechnet man mit einer Abweichung von 1 Seemeile pro Stunde. Durch die regelmäßige Positionsinformation durch das kann der Drift der in regelmäßigen zeitlichen Abständen korrigiert werden.

Zur Kopplung der Sensordaten werden gemäß Benzerrouk et al. (2013) Kalman-Filter verwendet. Ein Kalman-Filter ist dabei ein Satz mathematischer Gleichungen, mit denen Störungen, die durch Messgeräte entstehen, entfernt werden. Der Kalman-Filter ist dabei auf die Messfehler und auf die mathematische Struktur des zugrundeliegenden dynamischen Systems angepasst. Diese Kombination aus optimierten - und -Sensordaten wird im Folgenden als -Lösung beziehungsweise -Sensorik bezeichnet.

Datenstrukturen

Datenstrukturen dienen der geordneten Speicherung von einzelnen vorliegenden Daten in einer zusammenhängenden Struktur. Dadurch können die Daten in einem gemeinsamen Zusammenhang verglichen und je nach Implementierung effizient auf Speicherbereiche aufgeteilt werden. Für die vorliegende Arbeit werden Datenstrukturen wie Punkte, Punktwolken und Suchbäume aus der verwendet und erweitert.

Die 9 beinhaltet verschiedene Algorithmen zur Filterung, Feature-Bestimmung, Oberflächen-Rekonstruktion, Registrierung, Modell-Anpassungen und Segmentierung von Punktwolken. Durch die Verwendung der Bibliotheken Boost10, FLANN11, Eigen12 und VTK13 werden zudem verschiedene mathematische Operationen und Möglichkeiten zur Visualisierung der Punktwolken zur Verfügung gestellt.

Punkte

Punkte bezeichnen die kleinste Datenstruktur und repräsentieren zum Beispiel eine mehrdimensionale Position oder eine Eigenschaft an einer bestimmten Stelle des Messraumes. Gemäß Delmerico (2013) bietet die verschiedene standardmäßig implementierte Typen von Punkten. Punkte bieten somit die Möglichkeit, Koordinaten, Farbinformationen, Normalenvektoren oder Intensitätswerte zu speichern. Für die Verwendung im wurde eine eigene Punkt-Klasse angelegt, die neben den Koordinaten xx, yy und zz auch die Speicherung des Normalenvektors sowie einer Ursprungskoordinate ermöglicht. Da die Position des Sensors während der Aufnahme eines Scans nicht konstant ist, wird die Position des Sensors zum Zeitpunkt der Aufnahme des Messpunktes als Ursprungskoordinate gespeichert. Dadurch ist es möglich, die Bewegung des Sensors bei der Verortung der Messpunkte zu berücksichtigen.

Punktwolken

Eine Punktwolke dient der Repräsentation einer Zusammenstellung von mehreren Punkten. Punktwolken werden meist durch Sensoren wie -Kameras, Stereokameras, -Sensor, -Kameras oder durch Software wie Blender generiert. Gemäß den implementierten Punktwolken in der bestehen Punktwolken aus einem Vektor von Punkten, einer Breite (width), einer Höhe (height) sowie den Parametern is_dense, sensor_orientation und sensor_origin. Handelt es sich bei der vorliegenden Punktwolke um organisierte Daten, so entspricht die Breite der Zahl der Spalten und die Höhe der Zahl der Zeilen. Bei unorganisierten Daten entspricht die Breite der Anzahl an Punkten in der Punktwolke und die Höhe hat den Wert “1”.

Enthält die Punktwolke nur finite Messwerte, also keine NaN14 oder Inf15, so ist der Wert is_dense wahr. Die Eigenschaften sensor_orientation und sensor_origin können als Parameter für den Sensor verwendet werden, was jedoch nur im stationären Zustand während der Aufnahme der Punktwolke Anwendung findet.

Suchbäume

Um mehrere Punktwolken effizient miteinander zu vergleichen, werden die Punkte in sogenannten Suchbäumen abgespeichert. Ein Suchbaum wird dabei entsprechend eines Schemas aufgebaut und ist abhängig von der darauf anzuwendenden Suchstrategie. Für den -Algorithmus werden die Punktwolken iterativ anhand der nächsten Nachbarn der einzelnen Punkte registriert. Um diese Suche zu optimieren, werden die Punkte in einem kkd-Baum gespeichert. Gemäß Bentley (1975) ist ein kkd-Baum ein mehrdimensionaler (kk-dimensional) Binärbaum. Ein kkd-Baum ermöglicht somit die orthogonale Bereichsanfrage, wie sie zum Beispiel bei der Suche nach den nächsten Nachbarn eines Punktes vorliegt.

Bezugssysteme

Das erforscht die Verwendung von -Sensoren zur Erstellung digitaler Karten und als Grundlage zur automatisierten Navigation. Dabei werden Navigationssensoren eingesetzt, die eine Bestimmung der Lage und Position im 3-dimensionalen Raum ermöglichen. Zur Verarbeitung der Sensordaten werden unterschiedliche Bezugssysteme verwendet. Dabei handelt es sich um kartesische Koordinatensysteme, die unterschiedlich ausgerichtet und positioniert sind.

Sensor

Jeder Sensor misst eine physikalische Eigenschaft in einem speziellen, dafür vorgesehen Koordinatensystem. Bei einem -Sensor ist dies eine zeitliche Abfolge von Positions- und Lagevektoren. Bildgebende Sensoren wie -Sensoren speichern ihre Messdaten in polaren Kugelkoordinaten ab. Die Kugelkoordinaten werden in ein kartesisches Koordinatensystem überführt und als -Punktwolken gespeichert.

Träger

Die Sensoren sind auf sogenannten Trägern montiert. Je nach Konstruktion kann ein mehrere Träger transportieren. In der vorliegenden Arbeit befinden sich die verwendeten bildgebenden und -Sensoren auf einem gemeinsamen Träger, der fest mit dem verbunden ist (nicht beweglich). In diesem Fall entspricht die Bewegung des Trägers auch der Bewegung des . Die -Sensoren befinden sich im Massenschwerpunkt des . Dadurch kann die Bewegung des in alle Richtungen gleichmäßig gemessen werden. Das Trägerbezugssystem hat seinen Ursprung im Massenschwerpunkt des Trägers und ist gemäß dem -Standard ausgerichtet. Gemäß Abbildung 2 zeigt die xx-Achse in Hauptflugrichtung entlang der Längsachse des , die yy-Achse orthogonal nach rechts und die zz-Achse nach unten. Alle Rotationen werden gemäß der 9300 (siehe Tabelle 1) in der Reihenfolge zz, yy^\prime und anschließend xx^{\prime\prime} durchgeführt. Dies entspricht der Konvention in der Luft- und Raumfahrt.16

Welt

Das Weltbezugssystem wird unterschieden in ein relatives und ein absolutes Bezugssystem. Das relative betrachtet die Position des Trägers von der Startposition aus, die mit (0,0,0)(0, 0, 0) initialisiert wird. Das absolute Bezugssystem entspricht dem nach dem , wobei die Startposition mit der zum Start befindlichen Position in Längen- und Breitengraden initialisiert wird.

Figure 2. Darstellung der verschiedenen Bezugssysteme (Andert (2011))

Da das Sensorbezugssystem keinen Bezug zu einer Posenänderung hat, kann eine digitale Karte nur im Träger- oder Weltbezugssystem erstellt werden. Damit die aufgenommenen Punktwolken korrekt in die Karte eingetragen werden können, müssen sie in das entsprechende Bezugssystem transformiert werden. Diese Transformation ist abhängig von der Montagepose des in Relation zur und wird bisher durch eine manuelle extrinsische Kalibrierung bestimmt.

Relative extrinsische Kalibrierung von bildgebenden Umweltsensoren

Für die Erstellung einer Karte wird ein bildgebender Sensor benötigt, der die Umgebung vermisst. Zur Vermessung eines Gebietes muss dieser Sensor über das Gebiet bewegt werden. Dafür wird der Sensor an einem angebracht. Damit die Messungen korrekt in eine Karte überführt werden können, müssen sie mit der Bewegung des in Verbindung gebracht werden. Dafür wird eine -Sensorik eingesetzt, die die Bewegung des kontinuierlich aufzeichnet. Aus konstruktionstechnischen Gründen befindet sich die -Sensorik an einer anderen Position des und in unterschiedlicher Ausrichtung als der bildgebende Sensor. Dieser Unterschied in Position und Lage wird als Montagepose bezeichnet.

Figure 3. Ablauf der Kartografie von Punktwolken

Die aufgenommenen Laserscans der Umgebung werden nun gemäß Abbildung 3 mit der Montagepose vom Sensorbezugssystem des bildgebenden Sensors in das Trägerbezugssystem transformiert. Nun können die Laserscans durch Transformation mit den Navigationsdaten der -Sensorik vom Trägerbezugssystem in das Weltbezugssystem überführt werden. Durch kontinuierliche Speicherung der aufgenommenen Messungen der Umgebung, die sich nun im Weltbezugssystem befinden, kann eine Karte erstellt werden. Abbildung zeigt eine Gegenüberstellung von einem einzelnen Laserscan und seiner Überführung in eine Karte .

Eine fehlerhafte oder ungenaue Angabe der Montagepose führt dazu, dass die Karte falsch aufgebaut wird. Aus diesem Grund wird in den folgenden Abschnitten eine automatisierte relative extrinsische Kalibrierung vorgestellt, die eine korrekte Bestimmung der Montagepose ermöglicht.

Forschungsstand

Zu diesem Zeitpunkt ist nur die Arbeit von Levinson (2011) über eine automatisierte extrinsische Kalibrierung von -Sensoren bekannt. Er beschreibt eine intrinsische sowie eine extrinsische Kalibrierung von -Sensorn für ein autonomes Fahrzeug, wobei die präsentierte Lösung auf der Auswertung der einzelnen Laserstrahlen basiert. Er setzt voraus, dass die Echos benachbarter Laserstrahlen auf das gleiche Hindernis in der realen Welt treffen. Bei höheren Fahrzeuggeschwindigkeiten und dynamischeren Bewegungen scheitert das vorgestellte Verfahren. Des Weiteren ist diese Art der extrinisischen Kalibrierung stark auf den verwendeten -Sensor zugeschnitten und nicht allgemein anwendbar.

Bisher wurde die extrinsische Kalibrierung von -Sensorn zu anhand fest definierter Features17 unter anderem durch Talaya et al. (2004) vorgenommen. Dabei wurden Häuserwände vermessen, deren -Positionen bestimmt und mit reflektierenden Materialien beklebt. Die reflektierenden Materialien konnten im Anschluss auf Grund einer höheren Intensität beim Laserscan extrahiert werden. Durch die Analyse der bekannten -Positionen und den gemessenen Positionen im Laserscan mit höheren Intensitäten konnten Rückschlüsse auf die Montagepose des -Sensors gezogen werden. Das Verfahren basiert auf der Erkennung von planaren Features. Eine mathematische Lösung für dieses Verfahren zeigten Bae/Lichti (2007), die die Abstände zwischen Scanpunkten zu einer möglichen zugehörigen Fläche minimierten.

Für den Fall, dass keine planaren Flächen zur Verfügung stehen, präsentiert Chan et al. (2015) einen Ansatz, der zylinderförmige Features aus Laserscans zur Kalibrierung verwendet. Dabei wurde die Annahme getroffen, dass in urbanem Gelände häufig Zylinder in Form von Rohren auftauchen, deren Ausrichtung meist horizontal oder vertikal ist. Zur Validierung ihres Ansatzes untersuchten sie verschiedene Ausrichtungen der Zylinder und unterschiedliche Montagepositionen des -Sensors. Ihr Ansatz scheiterte, wenn sich mehrere unterschiedlich ausgerichtete Zylinder in der zu detektierenden Umgebung befanden.

Natürliche Umgebungen weisen kaum planare oder zylinderförmige Formen auf, sodass diese Ansätze nur in urbanem Gelände Anwendung finden können. Sheehan et al. (2011) und Maddern et al. (2012) identifizierten Scannerparameter anhand eines Maßes der Vielfältigkeit von Punktwolken (Rényi Quadratic Entropy). Ihr Hauptaugenmerk lag dabei auf der Synchronisation mehrerer -Sensor zueinander um detailreiche Umgebungsscans zu generieren. Des Weiteren befinden sich die Scanner zwar in einer rotatorischen Bewegung, jedoch translatorisch in einem stationären Zustand.

Des Weiteren ist in der Literatur der -Algorithmus bekannt. bezeichnet die Korrektur von Sensordaten anhand einer kontinuierlichen Kartenerstellung.18

Davison et al. (2007) präsentierten einen Ansatz, um mehrere Kamerabilder bei schnellen Bewegungen zu einer spärlichen Landkarte zusammenzufügen. Sie verwendeten dafür ein probabilistisches Feature-basiertes Kartenmodell und ein allgemeines Bewegungsmodell einer Kamera. Informationen über die Entfernungen wurden durch die Features definiert. Einen Ansatz zur Generierung von 3D-Landkarten mit Entfernungsinformationen bietet May et al. (2008). Der Ansatz verwendete -Kameras und einen Roboter, der für jede Aufnahme stoppt, wodurch stabile Punktwolken generiert werden können.

Bisherige Entwicklungen am beschreiben gemäß Stellmacher (2014) die Registrierung von Punktwolken auf Basis eines OcTrees (eine effiziente Baumstruktur, um dreidimensionale Datensätze hierarchisch zu gliedern). Das Ziel seiner Arbeit war eine Optimierung der Aneinanderreihung der Punktwolken in Echtzeit19. Das Resultat ist eine minimale Verbesserung der Registrierung, jedoch konnte die Echtzeitbedingung nur unter Einschränkungen eingehalten werden.

Des Weiteren werden bereits gemäß Krause/Evert (2012) erfolgreich Feature-basierte Kalibrierungen zwischen -Sensoren und Kameras eingesetzt. Grundlage für diese Forschungen ist unter anderem die Arbeit von Andert (2011).

Ansatz zur Kalibrierung

Für die relative extrinsische Kalibrierung des bildgebenden Sensors zur -Sensorik werden folgende Anforderungen definiert: (1) die Umgebung wird als unveränderlich und starr angenommen, (2) die zu vermessende Bewegung muss größer als die größte Messungenauigkeit des Systems sein, (3) die Position der Sensoren zueinander ist während der Kalibrierung unveränderlich und (4) der Träger ist fest mit dem verbunden, sodass die Bewegung des direkt der Bewegung des Trägers entspricht.

Die Grundlage der Kalibrierung bilden die Aufnahme von Umgebungsscans durch bildgebende Sensoren und die gleichzeitige Verfolgung der Bewegung durch eine -Sensorik, bestehend aus einer - und einem .

Die Erstellung der Umgebungsscans erfolgt durch scannende -Sensoren, die für jeden Scan eine 3-dimensionale Punktwolke in Form von Entfernungsmessungen generieren. Die Punktwolken werden dabei in einer festen Taktrate, die abhängig vom verwendeten -Sensor ist, generiert. Aus aufeinanderfolgenden Umgebungsscans wird die Differenz anhand eines -Algorithmus berechnet und in Form einer Transformationsmatrix gespeichert.Parallel werden die Bewegungen des in Form von Positions- und Winkeländerungen gemessen. Die Taktrate für die Bewegungsmessung ist systembedingt höher als die der Erstellung der Umgebungsscans. Diese Bewegungen werden ebenfalls als Transformationsmatrix gespeichert.

Bei einem -Sensor handelt es sich um ein scannendes System. Dabei wird die Umgebung in zeitlich diskreten Schritten vermessen. Befindet sich der im Stillstand, kann die Umgebung korrekt vermessen werden. Wird der jedoch während der Aufnahme einer Messung bewegt, führt dies zu Verzerrungen.

Abbildung zeigt die Auswirkung, wenn sich der Träger, in diesem Fall das , in Bewegung befindet. Ist die Aufnahmefrequenz des zu gering, hat sich der Träger deutlich bewegt. Die soeben erstellte Punktwolke repräsentiert nun eine Umgebung, die auf Grund der Bewegung verzerrt wird. Um dies zu korrigieren, muss der Laserscan Strahl für Strahl an die zwischenzeitliche Position des Trägers angepasst werden. Diese Anpassung wird im Folgenden als Bewegungskorrektur bezeichnet und erfolgt durch Interpolation der -Daten. Während der Recherche wurden diesbezüglich zwei Strategien zur Kalibrierung erarbeitet.

Figure 4. Kalibrierung im Weltkoordinatensystem

Abbildung 4 zeigt das Ablaufdiagramm der relativen extrinsischen Kalibrierung ohne Bewegungskorrektur. Dabei werden alle Bewegungen des Trägers während der Generierung der Datenpakete des ignoriert. Dies führt dazu, dass die gemessenen Hits (ein Hit bezeichnet den Auftreffpunkt des Laserstrahls auf einem Objekt) je nach Geschwindigkeit des Trägers zu weit in der Hauptbewegungsrichtung verortet werden.

Das Diagramm zeigt eine Ausgangs- und eine Endpose. Dazwischen wurde eine Bewegungsänderung durchgeführt, die mittels der -Sensorik gemessen wurde. Die empfangenen Umgebungsscans befinden sich im Bezugssystem des Sensors und werden nach der Umwandlung von Kugelkoordinaten zu kartesischen Koordinaten in einer Punktwolkenstruktur gespeichert.

Durch Transformation mit der Montagepose (zu Beginn kann diese Pose durch den Benutzer gesetzt werden, andernfalls sind alle Komponenten “0”) werden beide Punktwolken in das Trägerbezugssystem transformiert. Die Punktwolke, die zum Zeitpunkt der Endpose aufgenommen wurde, entspricht zeitgleich dem relativen Weltbezugssystem, da danach noch keine Bewegung stattgefunden hat. Die Punktwolke zur Ausgangspose wird hingegen mit der durch die -Sensorik gemessenen Bewegung in das relative Weltbezugssystem transformiert. Anschließend werden die beiden Punktwolken, die sich nun im relativen Weltbezugssystem befinden, dem -Algorithmus übergeben. Der -Algorithmus bestimmt, wie gut die zwei Punktwolken zueinander passen. Wurde die richtige Montagepose zwischen dem und der -Sensorik verwendet, sollten die Punktwolken perfekt übereinstimmen. Liefert der -Algorithmus hingegen eine Differenz zwischen den Punktwolken, so ist die ursprünglich übergebene Montagepose um diese Differenz falsch und muss angepasst werden.

Figure 5. Kalibrierung im Weltkoordinatensystem mit Bewegungskorrektur

Abbildung 5 zeigt den Ablauf der Kalibrierung mit Bewegungskorrektur. Der Unterschied zum vorherigen Diagramm ist die zusätzliche Transformation der einzelnen Umgebungsscans unter Verwendung der -Daten. da der -Sensor jedoch eine andere Montagepose als die -Sensorik aufweist, ist die gemessene Bewegung der -Sensorik zur tatsächlichen Bewegung des -Sensors unterschiedlich.

Eine Möglichkeit zur Korrektur wäre die Anpassung der -Daten auf die initial vorgegebene Montagepose, die jedoch ebenfalls fehlerbehaftet ist. Im Allgemeinen weist diese Methode einen zusätzlichen Berechnungsschritt für jede Punktwolke durch die Transformation auf. In der aktuellen Implementierung wird die Bewegung des Trägers berücksichtigt.

Bewegungsextraktion aus aufeinanderfolgenden Punktwolken

Eine Grundlage für die Kalibrierung ist die Schätzung der Bewegung zwischen zwei Punktwolken.

Registrierung von Punktwolken

Die Registrierung von Punktwolken erfolgt durch die Implementierung des -Algorithmus der gemäß Besl/McKay (1992). Dabei ist das Modell, das die Punktwolke repräsentiert, unabhängig für die Registrierung. Das Ziel des ist die Transformation zwischen zwei vorliegenden Punktwolken anhand der Fehlermetrik gemäß (32).

d(p,X)=minxX||xp||(32) d(\vec{p}, X) = \min_{\vec{x} \in X} || \vec{x} - \vec{p} || \qquad (32)

Dabei bezeichnet dd die Distanz-Metrik zwischen einem beliebigen Punkt p\vec{p} der Datenmenge PP und der anzugleichenden Datenmenge XX. Der Punkt in XX, der die kleinste Distanz zu p\vec{p} hat, wird als y\vec{y} bezeichnet. YY bezeichnet anschließend das Set aus nächsten Nachbarn durch den Operator CC und wird gemäß (33) berechnet.

Y=C(P,X)(33) Y = C(P, X)\qquad (33)

Der Algorithmus unterteilt sich dabei in 3 Schritte:

  1. Berechne die nächsten Nachbarn für Yk=C(Pk,X)Y_k = C(P_k, X)
  2. Berechne die Transformation zwischen P0P_0 und YkY_k
  3. Wende die Transformation auf P0P_0 an

Diese Schritte werden solange wiederholt, bis der Algorithmus terminiert. Dies ist der Fall, wenn (a) die Anzahl der Iterationen ein vom Benutzer angegebenes Maximum erreicht, (b) die Differenz zwischen der aktuellen geschätzten und der vorherigen Transformation ϵ\epsilon kleiner als die vom Benutzer angegebenen Grenze ist (die Transformation wurde nur minimal besser) oder (c) die Summe des euklidischen quadratischen Fehlers kleiner als der vom Benutzer angegebene Fehlerbereich ist (die Transformation ist ausreichend genau).

Zur Beschleunigung der Berechnung können die Punktwolken nach unterschiedlichen Aspekten gefiltert und Features extrahiert werden.

Extraktion von Features

Für die Registrierung von Punktwolken müssen Punkte miteinander verglichen werden. Punkte werden in einer Punktwolke in Form von kartesischen Koordinaten gespeichert. Vergleicht man nur die kartesischen Koordinaten zweier Punktwolken miteinander, besteht die Gefahr, dass zwei Punkte, die zu unterschiedlichen Zeiten aufgenommen wurden, die gleichen Koordinaten vorweisen, jedoch von unterschiedlichen Oberflächen stammen.

Rusu/Cousins (2011) führt das Konzept der point feature representations (auch als local descriptors, shape descriptors und geometric features in der Literatur bekannt) ein.

Durch Zusammenfassung mehrerer Punkte in einer Nachbarschaft kann die Geometrie der Oberfläche erfasst und als feature formuliert werden. Im Idealfall sind die so definierten features zu einem gewissen Grad ähnlich zu anderen Punkten auf der gleichen oder einer ähnlichen Oberfläche.

Eine gute Repräsentation von features zeichnet sich dadurch aus, dass es möglich ist, sie unter Einwirkung einer Transformation in Form von Rotationen und Translationen, trotz unterschiedlich stark aufgelöster Punktwolken und der Existenz von Messfehlern identifizieren zu können.

Durch die Bestimmung von Keypoints kann der Berechnungsaufwand von Features im Vorhinein minimiert werden, da der Suchraum eingeschränkt wird. Ebenfalls wird damit verhindert, dass beim späteren Matching Fehler durch Nicht-Schlüsselpunkte verursacht werden.

Bestimmung von Keypoints

Punkte, die in irgendeiner Weise als relevant identifiziert werden, bezeichnet man als Keypoints (Schlüsselpunkte). Sie besitzen dabei folgende Eigenschaften:

Zur Identifikation von Keypoints werden die Punkte einer Punktwolke gemäß ihrer nächsten Nachbarn sortiert. Dafür werden in der die kkd-Suchbäume gemäß Abschnitt verwendet. Im Anschluss besteht die Möglichkeit, die Punktmenge nach einer festen Anzahl an Nachbarn für einen Punkt zu durchsuchen oder alle benachbarten Punkte in einem Radius rr zu betrachten.

Skaleninvariante Merkmalstransformation (SIFT)

bezeichnet gemäß Lowe (1999) einen Algorithmus zur Detektion und Beschreibung lokaler Merkmale, die in gewissen Grenzen invariant gegenüber Koordinatentransformationen wie Translation, Rotation und Skalierung sind.

Der Algorithmus ist dabei in fünf Aufgaben unterteilt: (1) Feature-Detektion, (2) Feature-Matching und Indizierung, (3) Identifizierung von Clustern anhand eines Hough transform-Votings, (4) Überprüfung des Modells durch die Methode der kleinsten Quadrate und (5) Entfernung von Ausreißern.

Diese Variante ist die Grundlage für viele Optimierungen und wird bereits erfolgreich im Bereich der Bildverarbeitung eingesetzt.

(Fast) Point-Feature-Histogramm

Das Point-Feature-Historgramm ist eine Repräsentation der geometrischen Eigenschaften der benachbarten Punkte an einem Punkt. Dafür wird die mittlere Krümmung in Form eines mehrdimensionalen Histogramms von Werten generalisiert. Die Repräsentation eignet sich gut für unterschiedlich dichte Punktwolken und ist invariant gegenüber Änderungen des Betrachtungswinkels und Messfehlern.

Dafür werden die Oberflächen-Normalen der Umgebung geschätzt und die Variationen aller Interaktionen zwischen den Normalen extrahiert. Dieses Verfahren ist demzufolge stark von der Qualität der Normalen-Schätzung an jedem Punkt abhängig.

Die Filterfunktion ist sehr zeit- und rechenaufwendig, weswegen im Allgemeinen die Fast-Variante verwendet wird. Sie unterscheidet sich hauptsächlich darin, dass nicht alle Punkte miteinander verknüpft werden, sondern dass eine Gewichtung der Interaktionen durchgeführt wird.

Schätzung von Oberflächen-Normalen

Oberflächen-Normale sind eine wichtige Eigenschaft von geometrischen Oberflächen. Sie ermöglichen die Kombination von erkannten Oberflächen zu geometrischen Körpern, die speziell für die Erkennung von Hindernissen von Vorteil sind.

Für eine vorliegende Punktwolke können die Oberflächen-Normalen auf zwei Arten bestimmt werden: (a) durch die Erstellung von Meshs und anschließender Berechnung oder (b) durch Annäherung der Normalen einer Ebene an eine Oberfläche durch Minimierung der kleinsten Quadrate.

Filterung der Daten

Filter dienen der Extraktion oder Anpassung von Daten. Für die vorliegende Arbeit werden verschiedene Filterfunktionen zum Anpassen des Messbereichs, der Minimierung der Punktmenge und der Korrektur von Messfehlern in Punktwolken vorgestellt.

Begrenzung des Messbereichs

Jeder -Sensor ist für einen bestimmten Messbereich ausgelegt. Messungen außerhalb dieses Messbereiches sind meist ungenau oder undefiniert. Messwerte, die sich unterhalb einer Mindest- und oberhalb einer Maximalentfernung befinden, können durch einen Pass-Through- oder auch Bandpass-Filter entfernt werden. Diese Filterfunktion entfernt Punkte, bei der es sich mit sehr hoher Wahrscheinlichkeit um fehlerbehaftete Messpunkte handelt.

Des Weiteren kann durch einen Pass-Through-Filter das verändert werden, wenn zum Beispiel ein bestimmter Bereich durch Elemente des Trägers verdeckt werden. Dies ist zum Beispiel der Fall, wenn der -Sensor an der Unterseite zwischen dem Fahrgestell montiert ist. Das Fahrgestell reflektiert die Laserstrahlung, sodass es vom -Sensor als Hindernis detektiert wird. Da sich das Fahrgestell jedoch dauerhaft im befindet, würde es bei der Bewegungsextraktion eine statische Umgebung implizieren.

Die Begrenzung des Messbereichs kann nur an einer Punktwolke erfolgen, die noch nicht in das Weltbezugssystem überführt wurde, da ein unmittelbarer Zusammenhang zwischen Messpunkte und benötigt wird.

Entfernen von Messfehlern

Nach der Begrenzung der Daten auf den gültigen Messbereich können durch stochastische Annahmen Punktwolken von Messfehlern bereinigt werden. Es ist nahezu unmöglich, Messfehler in einer Punktwolke zu identifizieren. Aus diesem Grund bedient man sich der Annahme, das Ausreißer nahe einer Ansammlung von mehreren Punkten möglicherweise Messfehler repräsentieren. Dies bezeichnet man als statistical outlier. Die Funktion filtert gemäß der Angabe der mittleren Punktdichte die gesamte Punktwolke und entfernt entsprechende Punkte, die sich außerhalb dieser Ansammlungen befinden. Die Gefahr bei diesem Filter besteht darin, dass auch Punkte entfernt werden können, bei denen es sich nicht um Messfehler handelt.

Downsampling der Punktwolken

Scannende -Sensoren haben die Eigenschaft, dass die Winkelauflösung mit zunehmender Entfernung der zu messenden Hindernisse abnimmt. Das bedeutet, dass Hindernisse, die sich nah am -Sensor (innerhalb des Messbereiches) befinden, mit einer höheren Zahl an Hits vermessen werden. Die Struktur der Oberfläche ist somit höher aufgelöst und kleinere Unterschiede sind messbar. Befindet sich ein Hindernis jedoch weiter vom -Sensor entfernt, so werden die Hindernisse deutlich gröber aufgelöst als nähere.

Das heißt, dass der Nahbereich des -Sensors eine höhere Punktdichte aufweist. Kleine Rotationen zwischen den Punktwolken sind durch Veränderungen in der Ferne erkennbar, die Menge an Punkten im Nahbereich überwiegt jedoch, sodass diese kleinen Unterschiede für die Schätzung der Transformation nicht berücksichtigt werden.

Durch sogenanntes Downsampling werden Punkte aus der Punktwolke entfernt, um den Einfluss bestimmter Regionen auf die Registrierung zu minimieren. Im Folgenden werden zwei Varianten zum Downsampling der Punktwolken vorgestellt.

Voxel-Grids

Die erste Variante erzeugt ein gleichmäßiges Downsampling, das heißt, die Punktwolke wird in allen Regionen gleichmäßig ausgedünnt. Dabei werden die Punkte in einem definierten Bereich in ihrem Schwerpunkt, dem Voxel, zusammengefasst.

Das resultierende Voxel-Grid ist gleichverteilt und erfüllt die Bedingung, dass alle Regionen die gleiche Relevanz für die Bestimmung der Transformation haben. Wichtig ist, dass die Größe des Voxel-Grids auf die Verteilung der vorliegenden Daten angepasst wird, da sonst entweder zu viele oder zu wenige Punkte zusammengefasst werden.

Dieses Verfahren hat den Nachteil, dass auf Grund der Einteilung in Voxel die wahren Positionen der Punkte manipuliert werden. Die resultierende, geschätzte Transformation entspricht somit unter Umständen nicht mehr der eigentlich vorherrschenden Transformation.

Kovarianz-Downsampling

Nach Gelfand et al. (2003) wirkt sich eine fehlerhafte Kalibrierung der Sensorpose negativ auf die Registrierung der Punktwolken mit dem -Algorithmus aus. Dazu analysierten sie die Daten im Vorhinein und berechnen eine geometrische Stabilität. Punktwolken sind geometrisch instabil, wenn sie keine eindeutige Transformation ermöglichen. In diesem Fall divergiert der oder fällt mit hoher Wahrscheinlichkeit in ein lokales Minimum.

Das Resultat ist eine falsche Transformation, was zum Beispiel bei planaren Flächen der Fall ist. Bei der Registrierung existieren mindestens zwei Freiheitsgrade, anhand derer die Flächen zueinander verschoben oder rotiert werden können. Dieses Problem tritt somit bei geometrischen Grundformen wie Quadern, Zylindern und Kugeln auf. Das Maß dieser geometrischen Stabilität ist die Konditionszahl der Kovarianzmatrix20.

Die Kovarianz bezeichnet in diesem Zusammenhang die Varianz der Oberflächen-Normalen. Dazu wird die Punktwolke gemäß Abschnitt analysiert. Die Kovarianzen der verschiedenen Dimensionen werden in einer Kovarianzmatrix abgelegt. Aus den Eigenvektoren der Kovarianzmatrix berechnen sie eine Konditionszahl. Im Anschluss sortieren sie die Punkte absteigend nach ihrer Unabhängigkeit von der Umgebung und entfernen die voneinander abhängigsten 70%70\% aus dem Datensatz. In ihren Experimenten konvergiert der -Algorithmus nach 25 Iterationen. Dieses Verfahren wird als Kovarianz-Downsampling bezeichnet. Abbildung zeigt einen Laserscan vor und nach dem Kovarianz-Sampling.

Vorgabe einer initialen Ausrichtung

Die Vorgabe einer initialen Ausrichtung bezeichnet die initiale Transformation, mit der die Eingabe-Punktwolke transformiert wird. Sie kann entweder vom Benutzer vorgegeben oder durch einen Sample-Consensus-Algorithmus unter Verwendung des errechnet werden. Eine initiale Ausrichtung vermindert das Risiko, dass der zu einem lokalen Minimum konvergiert.

Die Implementierung des Sample-Consensus nach Rusu et al. (2009) ermöglicht das schnelle Sortieren nach Relevanz von einer Vielzahl an gesampelten Punkten unter der Wahrung der geometrischen Beziehungen zwischen den Punkten.

Zusammenfassung

Die Registrierung von Punktwolken mit dem -Algorithmus ist hauptsächlich für die feiner Anpassung einer initialen Transformation gedacht und konvergiert schnell in lokale Minima, wenn diese Transformation stark vom Ziel abweicht.

Punktwolken können anhand verschiedener Filterfunktionen optimiert und angeglichen werden. Durch die Berechnung von verschiedenen Features kann zudem die Registrierung zweier Punktwolken beschleunigt und das Risiko von lokalen Minima reduziert werden.

Trotz aller Bemühungen liefert die Standard-Implementierung des -Algorithmus keine Garantie für das Auffinden eines globalen Minimums. In der Literatur existieren bereits verschiedene alternative Ansätze, die durch zusätzliche Bedingungen den eingrenzen und versuchen, entsprechende lokale Minima zu erkennen. Beispielhaft seien dafür Yang et al. (2013), Bellekens et al. (2014), Belshaw/Greenspan (2009), Boughorbel et al. (2010), Droeschel/Behnke (2011), Gelfand et al. (2003), Hervier et al. (2012) und Rusinkiewicz/Levoy (2001) erwähnt.

Für diese Arbeit wird die Registrierung hingegen durch eine äußerlich geschachtelte Nichtlineare-Optimierung variiert. Die Punktwolken werden nicht durch den registriert, sondern seine Fehlermetrik als Variationseingabe für eine Levenberg-Marquardt Optimierung verwendet.

Nichtlineare Optimierung nach Levenberg-Marquardt

Die Maximierung und Minimierung eines Problems ist interdisziplinär. Beispielsweise soll der Profit einer Firma maximiert, aber die Kosten und eventuelle Risiken sollen minimiert werden. Nichtlineare Optimierung betrifft Probleme, wenn die zu minimierenden Faktoren in einer nicht-linearen Funktion zueinander stehen.

Prinzipiell unterscheidet man zwischen one-variable- und n-variable-optimisation. Eine one-variable-optimisation kommt zum Einsatz, wenn die zu optimierende Funktion nur von einer Variablen abhängig ist. Zur Lösung gibt es zwei Methoden, wobei die erste direkt den Funktionswert (direct-method) verwendet und die zweite auf Ableitungen (gradient-method) basiert.

One-Variable-Optimisation

Ein Optimum nach der gradient-method ist gegeben, wenn (34) und (35) zutreffen.

f(x)=0(34) f^\prime(x) = 0 \qquad (34) f(x){<0wenn Maximum gesucht>0wenn Minimum gesucht(35) f^{\prime\prime}(x) \begin{cases} < 0 & \text{wenn Maximum gesucht}\\ > 0 & \text{wenn Minimum gesucht}\end{cases} \qquad (35)

Allgemein verwendet man die secant- oder die Newton-Ralphson’s method.

Secant-Method

Die secant-method erfolgt entweder durch die Ableitung der Geradenfunktion oder durch die Taylor Reihe. Es handelt sich dabei um einen iterativen Prozess gemäß (36), bei dem zwei Anfangsbedingungen (x0x_0 und x1x_1) ausgewählt werden und anschließend der Nachfolger xi+1x_{i+1} berechnet wird. Dies wird so lange wiederholt, bis |f(xi)=0||f^\prime(x_i) = 0| oder ausreichend klein ist.

xi+1=xif(xi)f(xi)f(xi+1)×(xi+1xi)(36) x_{i+1} = x_i - \frac{f^\prime(x_i)}{f(x_i) - f(x_{i+1})} \times (x_{i+1} - x_i) \qquad (36)

Vorteile der secant-method sind, dass nur die erste Ableitung f(xi)f^\prime(x_i) benötigt wird und die Rechnung immer zu einer Lösung des Problems führt. Nachteilig ist hingegen, dass die Funktion nicht stets zum Minimum konvergiert und keine Fehlerschranken für die berechnete Iteration bestimmt werden. Das bedeutet, dass keine Aussage gemacht werden kann, wie nah man bereits am Minimum ist.

Newton-Ralphson’s Method

Eine weitere Methode zur Erfüllung der ersten Bedingung ist durch die Newton-Ralphson’s method gegeben. Diese Methode ist ebenfalls von der Taylor-Reihe abgeleitet und wird gemäß (37) iteriert.

xi+1=xif(xi)f(xi)(37) x_{i+1} = x_i - \frac{f^\prime(x_i)}{f^{\prime\prime}(x_i)} \qquad (37)

Die Abbruchbedingung nach der Angabe eines Startpunkts x0x_0 ist, wie bei der secant-method, wenn |f(xi)=0||f^\prime(x_i) = 0| oder ausreichend klein ist. Dabei werden beide Ableitungen der Funktion benötigt, wobei sich die Lösungsfunktion tangential immer weiter an das Minimum annähert. Die Vorteile bestehen darin, dass sie die wenigsten Iterationen benötigt, um das Minimum zu finden und dabei quadratisch konvergiert. Die Nachteile sind, dass die Methode fehlschlägt, wenn die zweite Ableitung |f=0||f^{\prime\prime} = 0| ist (Division mit 00). Des Weiteren muss sich der initiale Punkt bereits nah am Minimum befinden.

N-Variable-Optimisation

Wird von mehr als nur einer Variablen einer Funktion das Optimum gesucht, spricht man von n-variable-optimistation. Die Schreibweise dieses Problems erfolgt dabei gemäß (38).

f(x)=f(x1,x2,x3,,xn)(38) f(x) = f(x_1, x_2, x_3, \ldots, x_n) \qquad (38)

Die erste Ableitung einer Funktion mehrerer Unbekannter ff^\prime wird als Matrix der partiellen Ableitungen gemäß (39) formuliert.

f=(fx1fx2fx3fxn)T(39) f^\prime = \begin{pmatrix} \frac{\partial f}{\partial x_1} & \frac{\partial f}{\partial x_2} & \frac{\partial f}{\partial x_3} & \cdots & \frac{\partial f}{\partial x_n} \end{pmatrix}^{T} \qquad (39)

Die zweite Ableitung resultiert in der Hesse-Matrix gemäß (40). Die Hesse-Matrix entspricht der Transponierten der Jacobi-Matrix des Gradienten, wobei 2fxixj\frac{\partial^2f}{\partial x_i\partial x_j} die zweiten partiellen Ableitungen bezeichnet.

f=Hf(x):=(2fx12(x)2fx1x2(x)2fx1xn(x)2fx2x1(x)2fx22(x)2fx2xn(x)2fxnx1(x)2fxnx2(x)2fxn2(x))(40) f^{\prime\prime} = H_f(x) := \begin{pmatrix} \frac{\partial^2f}{\partial x^2_1}(x) & \frac{\partial^2f}{\partial x_1\partial x_2}(x) & \cdots & \frac{\partial^2f}{\partial x_1\partial x_n}(x)\\ \frac{\partial^2f}{\partial x_2\partial x_1}(x) & \frac{\partial^2f}{\partial x^2_2}(x) & \cdots & \frac{\partial^2f}{\partial x_2\partial x_n}(x)\\ \vdots & \vdots & \ddots & \vdots\\ \frac{\partial^2f}{\partial x_n\partial x_1}(x) & \frac{\partial^2f}{\partial x_n\partial x_2}(x) & \cdots & \frac{\partial^2f}{\partial x^2_n}(x)\\ \end{pmatrix} \qquad (40)

Damit ein Optimum gefunden werden kann, muss die erste Ableitung |f|=0|f^\prime| = 0 sein. Die zweite Bedingung ist, dass die Eigenwerte der Hesse-Matrix positiv sein müssen.

Zur Lösung des Problems werden sogenannte line-search-Algorithmen verwendet.Ein line-search-Algorithmus ist ein iterativer Prozess, der eine Suchrichtung pkp_k und eine Schrittweite ss benötigt. Jede Iteration erfolgt dabei gemäß (41), wobei man zwischen weak- und perfect-line-search unterscheidet. Der Unterschied besteht darin, dass im Gegensatz zur weak-line-search bei einer perfect-line-search die Schrittweite ss durch Berechnung angepasst wird.

xk+1=xk+s*pk(41) x_{k+1} = x_k + s * p_k \qquad (41)

Für eine erfolgreiche line-search werden die drei Wolfe’s Bedingungen definiert. Die erste, bekannt als sufficient-decrease, stellt gemäß (42) sicher, dass die Schrittweite nicht zu groß gewählt wird.

f(xk+α*pk)<f(xk)+c1*α*2*f(xk)*pk(42) f(x_k + \alpha * p_k) < f(x_k) + c_1 * \alpha * \nabla^2 * f(x_k) * p_k \qquad (42)

Die zweite Bedingung, curvature-condition, stellt gemäß (43) sicher, dass die Schrittweite ausreichend groß ist, um sich einer Lösung anzunähern.

f(xk+α*pk)Tc2*2*f(xk)T*pk(43) f(x_k + \alpha * p_k)^T \geq c_2 * \nabla^2 * f(x_k)^T * p_k \qquad (43)

Die letzte Bedingung wird als strong Wolfe’s condition bezeichnet und stellt gemäß (44) sicher, dass sich die Suchrichtung pkp_k in Richtung eines Minimums befindet.

f(xk+α*pk)Tc3*2*f(xk)T*pk(44) f(x_k + \alpha * p_k)^T \leq c_3 * \nabla^2 * f(x_k)^T * p_k \qquad (44)

Im Folgenden werden die Suchstrategien steepest-descent, Newtons- und quasi-Newtons-method erläutert.

Steepest-Descent

Die erste Suchstrategie beginnt an einer Startposition x0x_0. Für jede Iteration k=0,1,2,,nk=0,1,2,\ldots,n wird der Gradient gk=fg_k = \nabla f bestimmt, die Richtung als pk=fp_k = - \nabla f festgelegt sowie überprüft, dass die Richtung zum Minima gemäß (45) gegeben ist.

pkT*gk<0(45) p_k^T * g_k < 0 \qquad (45)

Anschließend wird der nächste Punkt gemäß (46) bestimmt und die Schrittweite ss gemäß (47) aktualisiert.

xk+1=xk+s*pkT(46) x_{k+1} = x_k + s * p_k^T \qquad (46)

s=d/ds(47) s = d/ds \qquad (47)

Dieses Verfahren wird so lange wiederholt, bis |gk+1|=0|g_{k+1}| = 0 ist. Die Vorteile bestehen darin, dass es die wenigsten Berechnungen erfordert, nie fehlschlägt und auf unterschiedliche Modelle skaliert werden kann. Nachteilig ist, dass die Anzahl der benötigten Iterationen nicht minimal ist.

Newton’s Method

Die zweite Suchstrategie verwendet die Hesse-Matrix, um die Richtung der Suche zu bestimmen. Dazu werden nach Angabe eines Startwerts x0x_0 für alle k=0,1,2,,,nk = 0,1,2,,\ldots,n die Gradienten und die Hesse-Matrix HkH_k berechnet. Die Richtung der Suche erfolgt gemäß (48).

pk=Hk1*gk(48) p_k = H_k^{-1} * g_k \qquad (48)

Anschließend wird der neue Punkt xk+1x_{k+1} sowie die Schrittweite ss wie beim steepest-descent berechnet. Die Suche endet, sobald |gk+1|=0|g_{k+1}| = 0 ist.

Diese Strategie konvergiert schneller als steepest-descent. Die Suche kommt jedoch nicht zu einer Lösung, wenn der initiale Punkt zu weit vom Minimum entfernt ist. Des Weiteren müssen die Hesse-Matrix und ihre inverse berechnet werden.

Quasi-Newtons Method

Diese Suchstrategie entspricht der Newtons Method, jedoch wird eine approximierte Inverse der Hesse-Matrix Hk1=GkH_k^{-1} = G_k verwendet. Nach Definition des Startpunkts x0x_0 wird der Gradient gk=fg_k = \nabla f berechnet und Gk=IG_k = I der Identitätsmatrix gesetzt. Die Suchrichtung errechnet sich gemäß (49). Die Berechnung des nächsten Punktes xk+1x_{k+1} und der Schrittweite ss erfolgt wieder gemäß der Newton’s Method.

pk=Gk*gk(49) p_k = -G_k * g_k \qquad (49)

Im Anschluss wird die Annäherung der Hesse-Matrix angepasst. Dazu wird gemäß (50) die Differenz der Gradienten γk\gamma_k und gemäß (51) die Differenz der Punkte δk\delta_k berechnet.

γk=gk+1gk(50) \gamma_k = g_{k+1} - g_k \qquad (50)

δk=xk+1xk(51) \delta_k = x_{k+1} - x_k \qquad (51)

Die Annäherung der Hesse-Matrix berechnet sich gemäß (52).

Gk+1*γk=δk(52) G_{k+1} * \gamma_k = \delta_k \qquad (52)

Das Verfahren wird anschließend so oft wiederholt, bis |gk+1|=0|g_{k+1}| = 0 ist.

Als weitere Optimierungen existieren zwei Varianten zur Annäherung der Hesse-Matrix nach David-Fletcher-Powell (DFP) gemäß (53) und Broyden-Fletcher-Goldfarb-Shanno (BFGS) gemäß (54).

Gk+1=GkGkγkγkTGkγkTGkγk+δkδkTδkTγk(53) G_{k+1} = G_k - \frac{G_k \gamma_k \gamma_k^T G_k}{\gamma_k^T G_k \gamma_k} + \frac{\delta_k \delta_k^T}{\delta_k^T \gamma_k} \qquad (53)

Gk+1=GkGkγkδkT+δkγkTGkδkTγk+[1+γkTGkγkδkTγk]δkδkTδkTγk(54) G_{k+1} = G_k - \frac{G_k \gamma_k \delta_k^T + \delta_k \gamma_k^T G_k}{\delta_k^T \gamma_k} + \left[ 1 + \frac{\gamma_k^T G_k \gamma_k}{\delta_k^T \gamma_k} \right] \frac{\delta_k \delta_k^T}{\delta_k^T \gamma_k} \qquad (54)

Zusammenfassend kann gesagt werden, dass alle Suchstrategien entsprechend der Schrittweite variiert werden können. Welche Suchstrategie die beste ist, kann nicht anhand der Vor- oder Nachteile entschieden werden, sondern ist abhängig von der Funktion ff und dem Ausgangspunkt.

Umsetzung der Kalibrierung im DIP-Framework

Die Kalibrierung wurde als zuschaltbarer Filter im -Framework der Abteilung implementiert.

Entwicklung der Softwarearchitektur

Dafür wurde die aktualisiert und die entsprechenden Programmaufrufe an die neue Version angepasst. Es wurde ein Datentyp Ext_Pt angelegt, der den Anforderungen für die zu verwendenden Algorithmen entspricht. Der Datentyp ermöglicht die Speicherung der Punktkoordinaten, einer Oberflächen-Normalen und einer Sensorposition. Damit die Punktwolken in den unterschiedlichen Bezugssystemen dargestellt werden können, mussten gemäß Abbildung 6 einige Änderungen an der bestehenden Codebasis vorgenommen werden.

Figure 6. Klassendiagramm zur Umsetzung der Kalibrierung im DIP

Zuerst wurde die Verzahnung zwischen Erstellung, Extraktion und Darstellung von Punktwolken aufgelöst und die Funktionalität der Darstellung in die Klasse pointcloudVisualizer verlegt. Jede Klasse, die Punktwolken in irgendeiner Art und Weise visualisieren möchte, kann nun von der Klasse pointcloudVisualizer erben und die Punktwolke in der geschützten Shared-Pointer-Variablen cloudToDraw speichern. Die Visualisierung erfolgt dabei in einem eigenen Thread.

Des Weiteren wurde die Umwandlung von -Scandaten in Punktwolken optimiert. In der bisherigen Implementierung wurden die Punktwolken redundant angelegt und mehrfach kopiert. Durch Verwendung von shared-pointer-Variablen konnte die Verarbeitung der Punktwolken effizienter gestaltet werden. Ebenfalls wurde die Klasse imageToPointcloud um die Variable e_coordinate_system erweitert, bei der es sich um eine Enumeration handelt. Diese Variable definiert das Bezugssystem, für das die Punktwolke aus den Scandaten berechnet werden soll. Zuvor wurden für jedes Bezugssystem eine eigene Punktwolke angelegt und bearbeitet, auch wenn von der aufrufenden Klasse nur die Punktwolke eines Bezugssystems verwendet wurde. Das Bezugssystem kann nun durch Setzen der Variablen variiert werden.

Als Nächstes wurde die Klasse LaserNAVCalibration erstellt. Dabei handelt es sich um den Filter, der gemäß des vorgestellten Ansatzes die einzelnen Funktionen aufruft. Die einzelnen Funktionen für Filterung, Sampling und Registrierung befinden sich außerhalb einer Klasse, ausgelagert in der Datei pointcloudRegistration. Die Klasse LaserNAVCalibration erbt zudem von der Klasse ScannerOverview, um die registrierten Punktwolken, den Ursprungsdatensatz sowie einzelne Zwischenprodukte während des Samplings darzustellen.

Implementierung der optimierten Lösung

Als nicht-lineare Optimierungsfunktion wird die Implementierung nach Gavin (2011) und Madsen et al. (1999) von Wuttke (2007) verwendet. Dabei handelt es sich um eine n-variable-optimistation. Die Minimierung beginnt mit der Suchstrategie steepest-descent und geht anschließend in die Newton-Gauß-Methode über. Bei der Newton-Gauß-Methode handelt es sich um eine weitere Optimierung der Quasi-Newtons method, die jedoch nur auf die Minimierung von nicht-linearen Problemen der kleinsten Quadrate angewendet werden kann.

Die Übergabeparameter sind die zu optimierende Montagepose. Sie besteht aus drei Translationen und drei Rotationen. Die Optimierungsfunktion benötigt ein bestimmtes, im Idealfall ein überbestimmtes Gleichungssystem, sodass für sechs Unbekannte auch sechs Punktwolken-Paare benötigt werden.

Die Optimierungsfunktion berechnet für jedes Punktwolken-Paar den mittleren Punktabstand. Dazu wird eine Initiallösung vorgegeben, die zum Beispiel vom Anwender gemessen oder geschätzt wird. Mit dieser Initiallösung werden nun beide Punktwolken transformiert. Dabei werden die Punkte vom Sensor- ins Trägerbezugssystem überführt. Anschließend wird die zeitlich erste Punktwolke mit der gemessenen Bewegung, die das zwischen den Aufnahmen erfahren hat, transformiert.

Bei einer korrekten Montagepose würde die erste Punktwolke nun mit der zweiten übereinstimmen. Ist dies nicht der Fall, bedeutet es, dass die Montagepose angepasst werden muss. Dafür werden die Punktwolkenabstände mit dem bestimmt und in einem Fehlervektor gespeichert. Dieses Verfahren wird für jedes Punktwolken-Paar wiederholt. Anschließend werden alle Fehler aus dem Fehlervektor aufaddiert und die Wurzel gezogen. Dieser Wert dient für die Optimierungsfunktion als Richtwert.

Nach jedem Durchlauf werden die Übergabeparameter gemäß einer mathematischen Metrik verändert und der Fehlervektor erneut berechnet. Diese Veränderung ist unter anderem abhängig von der Schrittweite ϵ\epsilon und den vorherigen Fehlervektoren.

Entwicklung der graphischen Oberfläche

Durch die Vererbung der verschiedenen Filter kann zudem nicht nur die Funktionalität des Filters, sondern auch die graphische Oberfläche des Filters übernommen und erweitert werden. Gemäß Abbildung ist die graphische Oberfläche des LaserNAVCalibration-Filters in drei Teile untergliedert.

Auf der können die verschiedenen Filter- und Samplingfunktionen zur Kalibrierung zu- oder abgeschaltet werden. Dabei wurde Wert auf die gegenseitige Abhängigkeit von Filterfunktionen gelegt. Die Berechnung des Kovarianz-Samplings setzt zum Beispiel die Berechnung der Oberflächen-Normalen voraus. Deaktiviert der Benutzer die Berechnung der Oberflächen-Normalen, wird automatisch auch der Filter des Kovarianz-Samplings deaktiviert. Des Weiteren befinden sich an dieser Stelle ein Add- und ein Reset-Button, wodurch der Ablauf der Kalibrierung gesteuert werden kann.

In der befinden sich die von der Klasse ScannerOverview geerbten Steuerelemente zur Visualisierung des Ursprungsdatensatzes. Dies ermöglicht die Parametrierung der Anzahl der anzuzeigenden Punktwolken und die Einstellung der Höhenskala.

Die ermöglicht allgemeine Einstellungen zur Visualisierung von Punktwolken, wie das darzustellende Bezugssystem und die Einfärbung der Punktwolke anhand verschiedener Eigenschaften.

Anwendung des Filters zur relativen extrinsischen Kalibrierung

Um die Montagepose eines -Sensors zu einer -Sensorik zu kalibrieren, müssen die jeweiligen Scandaten und Navigations-Log-Dateien in das -Framework geladen werden. Dabei ist sicherzustellen, dass die initiale Montagepose in der Initialisierungsdatei der Scandaten wie gewünscht gesetzt ist. Anschließend werden Schlüsselszenen durch den Add-Button zu einem Vektor aus Punktwolkenpaaren hinzugefügt. Dabei hat das Punktwolkenpaar einen zeitlichen Abstand von 100 ms. Der Reset-Button setzt die bisher gewählten Schlüsselszenen komplett zurück. Hat der Benutzer mindestens sechs Schlüsselszenen hinzugefügt, beginnt die nicht-lineare Optimierung.

Im Konsolen-Ausgabefenster kann nun die Variation der Parameter beobachtet werden. Der Algorithmus endet mit einer minimierten Lösung. Nach Erhalt der neuen Montagepose wird das Punktwolkenpaar mit dem größten Fehlerwert aus dem Vektor entfernt und der Benutzer hat die Möglichkeit, eine weitere Schlüsselszene hinzuzufügen. Durch das erneute Hinzufügen wird die Optimierung mit der nun berechneten Montagepose wiederum durchlaufen.

Validierung

Zur Validierung der Kalibrierlösung wurden zwei Experimente durchgeführt. Durch das erste Experiment In-Flight wird die Problematik der Kalibrierung an einem unbekanntem Aufbau analysiert. Die Ergebnisse dienten als Anhaltspunkte für den vorgestellten Kalibrierungsansatz. Mit dem zweiten Experiment Common-Ground wurde die Implementierung der automatisierten Kalibrierung durch die Verwendung eines konstruierten und vermessenen Aufbaus validiert. Im Folgenden werden beide Experimente bezüglich ihres Aufbaus, des Ablaufs und den jeweiligen Resultaten erläutert.

Ausgangspunkt der Kalibrierung

Bei der Auswertung eines Filters zur Erkennung von Hindernissen anhand von Kamera und -Daten wurden die Aufnahmen einer Kamera mit den Entfernungsinformationen eines verknüpft. Dabei trat ein Effekt gemäß Abbildung auf, der bei bestimmten Bewegungen dazu führte, dass die Hits des fehlerhaft auf das Kamerabild projiziert wurden. Dadurch wurde die Hinderniserkennung stark gestört.

Für das menschliche Auge sind die fehlerhaften Detektionen an den Häuserwänden kaum zu erkennen. In der algorithmischen Analyse führen solche Messfehler zu gravierenden Rechenfehlern. Bisher ist es algorithmisch noch nicht möglich, solche perspektivischen Fehler zu erkennen und zu korrigieren. Alternativ entstand der Gedanke, dass die geschätzte und am Computer nachträglich optimierte Montagepose des in bestimmten Situationen zu ungenau sei. Dadurch entstand der Wunsch nach einer automatisierten extrinsischen Kalibrierung zwischen -Sensoren und -Sensorik.

Verwendete Sensoren

Der LiDAR-Sensor

Als -Sensor kommt der Velodyne HDL-32e (im Folgenden als Velodyne bezeichnet) zum Einsatz. Entsprechend seines Namens besitzt der Velodyne 32 vertikal angeordnete Halbleiterlaser, die in der zxzx-Ebene einen zwischen +10+10^\circ und 30-30^\circ ermöglichen. Gemäß Abbildung 7 rotiert diese Anordnung um 360360^\circ um seine yy-Achse. Der Messbereich liegt bei 1 m bis 100 m mit einer Standardabweichung von +/- 2 cm bei 25 m. Die Framerate beträgt dabei 10 Hz, wobei der -Sensor je Scan circa 250.000 Bildpunkte als Entfernungsmessung liefert.

Figure 7. Schematische Darstellung des Velodyne HDL-32e

Figure 7. Schematische Darstellung des Velodyne HDL-32e

Der -Sensor misst den Rotationswinkel θ\theta, den Winkel ϕ\phi, die Distanz zum Objekt dd, den Intensitätswert des jeweiligen Hits und einen intern gesetzten Zeitstempel. Die aufgenommenen Sensordaten werden per an den Rechner (Fahrzeug- beziehungsweise Flugrechner) weitergeleitet und dort von Kugelkoordinaten in kartesische Koordinaten umgerechnet.

Die inertiale Messeinheit

Als inertiale Messeinheit wird die iMar iTraceRT-F400-Q gemäß Abbildung 8 verwendet. Die bietet eine Deep-Coupled Sensorumgebung aus und . Das wird durch Laserkreisel und eine unbekannte Anordnung von Beschleunigungssensoren realisiert; das unterstützt -, - sowie BeiDou-Satelliten.

Figure 8. Produktbild der iMAR iTraceRT-F400 Q (iMAR (2013))

Figure 8. Produktbild der iMAR iTraceRT-F400 Q (iMAR (2013))

Die liefert gemäß iMAR (2013) alle kinematischen Messungen wie Beschleunigung, Winkelgeschwindigkeiten, Lage, Heading, Geschwindigkeit und Position des Trägers mit einer Taktfrequenz von 400 Hz. Die Genauigkeit beträgt dabei 22 cm in der Position, 0,010,01^\circ bezüglich der Lage, <1< 1 mg in der Beschleunigung und 0,02ms0,02~\frac{m}{s} in der Geschwindigkeit. Die ist über eine 2.0 Schnittstelle mit dem Rechner verbunden.

Versuch - In-Flight

Der Versuch In-Flight repräsentiert den realen Einsatz der Kombination aus und am Forschungs- des . Dabei sind die relativen Posen der Sensoren zueinander durch Mitarbeiter des geschätzt und optimiert worden. Da dieser Versuch als Urheber des Wunsches nach einer automatisierten Kalibrierung zu betrachten ist, wurden die Messdaten des Versuches soweit möglich analysiert, um das Problem besser zu verstehen.

Aufbau

Der Träger der Sensoren war in diesem Zusammenhang das Dragon 50 gemäß Abbildung 9 des Herstellers SwissDrones. Die Position und Lage der Sensoren zueinander wurde gemäß Tabelle 5 manuell vermessen und durch optische Analyse weiter optimiert.

Figure 9. SwissDrones Dragon 50 im Flugversuch

Figure 9. SwissDrones Dragon 50 im Flugversuch

Table 5. Händisch ermittelte Rotationswinkel und Abstände der Sensoren auf der Trägerplattform.
Achse Rotationswinkel [^\circ] Abstand [mm]
xx 80,0-80,0 +/- 10,010,0 240,0240,0 +/- 30,030,0
yy 0,00,0 +/- 10,010,0 0,00,0 +/- 30,030,0
zz 90,0-90,0 +/- 10,010,0 135,0135,0 +/- 30,030,0

Damit das des in Flugrichtung nicht eingeschränkt war, wurde der um 1010^\circ geneigt am Rumpf des befestigt.

Ablauf

Das Experiment fand am 29.09.2014 von 09:30 Uhr bis 11:00 Uhr auf einem Truppenübungsplatz in St. Luzisteig im Kanton Graubünden in der Schweiz statt. Dabei wurde das von Hand durch einen Sicherheitspiloten durch eine Anordnung von Häusern gesteuert und vom Bodenpersonal verfolgt. Das Experiment begann mit der Kalibrierung der inertialen Messeinheit durch das Fliegen von zwei übereinander gelegten Kreisen. Im Anschluss wurde das durch großteils translatorische Bewegungen durch die Umgebung gesteuert und anschließend auf dem Startplatz wieder gelandet. Somit genügt dieser Versuch der loop-closing Bedingung. Abbildung zeigt eine 2-dimensionale Darstellung der Flugtrajektorie.

Die Montagepose des führt unweigerlich dazu, dass das zur Seite und nach hinten auf Grund des Fahrgestells und der Grundplatte eingeschränkt wurde. Da dies zu Fehlmessungen führte, wurden die resultierenden Daten durch einen Pass-Through-Filter bereinigt.

Im Anschluss wurden die generierten Punktwolken am Rechner betrachtet. Dabei fiel auf, dass im Datensatz gerade zu Beginn des Fluges kaum markante Hindernisse enthalten sind und die Punktwolken hauptsächlich aus ebenen Bodenaufnahmen bestehen. Beim Einflug in die Häusergegend sind sich bewegende Personen zu erkennen, sodass die Bedingung einer statischen Umgebung nicht zutrifft. Des Weiteren ist der Flug stellenweise holprig, sodass sich das Blickfeld horizontal schnell ändert.

Als Nächstes wurden die Punktwolken in verschiedenen Scan-Abständen mit dem -Algorithmus registriert und die Fehlerwerte geplottet.

Ergebnisse

Die generierten Punktwolken dieses Versuchs sind speziell zu Beginn während der Kalibrierung der inertialen Messeinheit sehr bodenlastig, das heißt, es sind kaum Merkmale in Form von Häuserecken oder ähnlichem zu sehen. Dies wirkt sich direkt auf den -Fehler aus. Zu Beginn befindet sich das in einer nicht markanten Umgebung und die Registrierung schlägt häufiger fehl. Ab der Hälfte des Fluges bewegt sich das in einer Anordnung von Häusern, was sich auch gemäß Abbildung positiv auf den -Fehler auswirkt.

Abbildung zeigt eine Vergleichsübersicht der mittleren errechneten -Fehler zwischen den Punktwolken für unterschiedliche Scan-Abstände.

Es ist zu erkennen, dass mit steigendem Scan-Abstand auch ein höherer mittlerer -Fehler einhergeht. Der Versuch hat gezeigt, das das Resultat einer suxzessiven Registrierung von Punktwolken abhängig ist von der Struktur des Scans, den Abständen der zur Registrierung verwendeten Scans und der Position des am Träger.

Versuch - Common Ground

Der Versuch Common Ground dient der Bestimmung der Genauigkeit und der Anwendbarkeit der Kalibrierungslösung.

Aufbau

Der Aufbau besteht aus den zur Kalibrierung benötigten Geräten gemäß Tabelle 6, die auf einer gemeinsamen Trägerplattform gemäß Abbildung 10 befestigt sind.

Table 6. Geräteübersicht.
Anzahl Gerät Modell
1 Velodyne HDL-32e
1 iMAR iTrace RT-F400Q
2 -Antennen Novatel
1 Spannungsversorgung -Eigenbau
1 Flugcomputer -Eigenbau
Figure 10. Trägerplattform im Versuch Common-Ground

Figure 10. Trägerplattform im Versuch Common-Ground

Der Aufbau wurde bezüglich der Winkel und Abstände gemäß 7 kalibriert.

Table 7. Rotationswinkel und Abstände der Sensoren auf der Trägerplattform.
Achse Rotationswinkel [^\circ] Abstand [mm]
xx 90,090,0 +/- 5,05,0 325,0325,0 +/- 10,010,0
yy 0,00,0 +/- 5,05,0 0,00,0 +/- 10,010,0
zz 90,090,0 +/- 5,05,0 20,020,0 +/- 10,010,0

Ablauf

Zu Beginn wurde der Aufbau im Forschungstransporter des verbaut. Dabei wurde Wert darauf gelegt, dem ein offenes Blickfeld durch die geöffneten Ladeklappen zu ermöglichen. Der benötigt keine weitere Inbetriebnahme, er liefert Umgebungsscans per Ethernet-Schnittstelle, sobald er mit einer Spannung versorgt wird.

Die benötigt zur Bestimmung der Position mindestens eine -Antenne, deren relative Montageposition gemäß Tabelle 8 vermessen wurde.

Table 8. Montageabstände zwischen der GPS-Antenne und der IMU.
Achse Abstand [m]
xx 3,03-3,03 +/- 0,100,10
yy 0,710,71 +/- 0,100,10
zz 1,1751,175 +/- 0,100,10

Die Anleitung des Herstellers zur Inbetriebnahme der war nicht eindeutig genug, sodass der Ablauf im Feldversuch ermittelt werden musste. Die verwendete wird hauptsächlich für den Automobilbetrieb eingesetzt. Da für den Automobilbetrieb andere Koordinatensystem-Konventionen als im Bereich der Luft- und Raumfahrt verwendet werden, muss die entsprechend konfiguriert werden. Dazu wurde die Ausrichtung der und dem Träger (in diesem Fall das Forschungsfahrzeug) gemäß Tabelle 9 bestimmt.

Table 9. Ausrichtung der IMU im Fahrzeugbezugssystem.
Winkel Betrag [^\circ]
Φ\Phi 0,00,0 +/- 5,05,0
Θ\Theta 0,00,0 +/- 5,05,0
Ψ\Psi 90,090,0 +/- 5,05,0

Das Experiment wurde am 25. Juni 2015 von 15:00 Uhr bis 16:00 Uhr in der Wohngegend Hondelage bei Braunschweig durchgeführt. Die Lokalität und die Uhrzeit wurden gewählt, um während des Experiments eine großteils statische Umgebung zu ermöglichen, sodass die Laserscans nicht durch andere Verkehrsteilnehmer verfälscht werden konnten. Andererseits hätte die so erhaltene Dynamik die Berechnung der Montagepose erschwert. Das Experiment wurde dreimal durchgeführt.

Bei dem Versuch wurden insgesamt 23952395 Laserscans in 95,895,8 Sekunden aufgenommen. Die Auflösung eines Laserscans betrug dabei 2000×322000 \times 32 Bildpunkte, die in die Punktwolken übertragen wurden.

Abbildung zeigt die aufgenommenen Punktwolken nach der Transformation ins Weltbezugssystem in einer Draufsicht. Die Farbe repräsentiert die relative Höhe der Punkte, wobei die Farben von Rot (nah am Boden) in Grün (circa 1010 m über dem Boden) übergehen. Die Strecke des Experiments genügt der Loop Closing-Bedingung, sodass eine gleichmäßige Anzahl an Rotationen für die Auswahl der Schlüsselszenen zur Verfügung stehen (drei rechts- und vier Linkskurven). Für die translatorischen Schlüsselszenen stehen acht verschiedene Abschnitte zur Verfügung.

Nach dem Experiment wurden die Schlüsselszenen ausgewählt. Dafür wurden die Bewegungsdaten mit unterschiedlichen Scanabständen21 (11, 22, 1010 und 100100) geplottet. Die Auswertung zeigt, dass bei einem Abstand von 100 die Differenz zwischen den Laserscans zu groß war, um noch ausreichende Merkmale zur Registrierung zur Verfügung zu stellen. Bei den Abständen von 1 und 2 Laserscans war hingegen die Geschwindigkeit des Versuchsträgers zu gering, sodass die gemessenen Translationen und Rotationen zu nah aneinander lagen. Aus diesem Grund werden für die weitere Auswertung Abstände von 10 Scans zwischen den Schlüsselszenen verwendet.

Zur Auswahl der rotatorischen Schlüsselszenen wurden gemäß Abbildung die Summe der quadratischen Wurzeln aus den einzelnen Winkeln Φd\Phi_d, Θd\Theta_d und Ψd\Psi_d gebildet. Anschließend wurden die Maxima bestimmt, absteigend sortiert und die oberen drei abgespeichert. Für die Translationen wurde gemäß Abbildung auf Basis der Wurzel der quadratischen Summen aus den einzelnen Koordinatenanteilen xdx_d, ydy_d und zdz_d ebenso verfahren. Aus dieser Analyse wurden die Punktwolken-Paare 4242, 7979 und 200200 für die Rotationen und 137137, 167167 und 190190 für die Translationen als Schlüsselszenen ausgewählt.

Der Ansatz wurde dabei unter Vorgabe der gemessenen, gemäß Tabelle 7, und der falschen (alle Winkel und Translationen wurden auf 0 gesetzt) Lösung validiert. Dabei wurden die Kalibrierungen einmal im Welt- und im Sensorbezugssystem durchgeführt sowie die Punktwolken jeweils (a) ohne Filterung betrachtet, beziehungsweise (b) durch das Voxel-Grid, (c) durch das Kovarianz-Downsampling und (d) Voxel-Grid + Kovarianz-Downsampling reduziert. Die Parameter für die Filter- und Samplingfunktionen entsprachen denen von Stellmacher (2014) ermittelten Standardwerten.

Ergebnisse

Abbildung zeigt die Gegenüberstellung der 16 durchgeführten Messungen. Es ist zu erkennen, dass unter der Vorgabe der korrekten Montagepose die Kalibrierung der Pose im Sensor- wie auch im Weltbezugssystem zur korrekten Lösung konvergiert. Im Sensorbezugssystem ist die Lösung der Position in Bezug auf die xx- und zz-Achse falsch. Des Weiteren ist zu erkennen, dass die Kalibrierung im Sensorbezugssystem unter der korrekten Vorgabe der Lösung im Durchschnitt höhere -Fehler vorweist als im Weltbezugssystem.

Bei der falschen Vorgabe ist zu erkennen, dass die Lösung der Lage im Sensor- wie auch im Weltbezugssystem in die korrekte Richtung geht, jedoch um mehrere Größenordnungen zu groß ist. Auf den ersten Blick erscheint dies als eine falsche Lösung. Bei genauerer Betrachtung der Messdaten fällt hingegen auf, dass es sich dabei um positive oder negative Vielfache der korrekten Lösung handelt. Bezüglich der Translation bietet die Kalibrierung im Sensorbezugssystem die besten Ergebnisse.

Bezüglich der Filterfunktionen kann keine eindeutige Aussage getroffen werden, welche besser geeignet ist. Es ist zu beobachten, dass außer im Weltbezugssystem mit falscher Vorgabe die Kalibrierung ohne Filterung rotatorisch sehr gute Ergebnisse liefert. Auffällig ist, dass die gleichzeitige Anwendung des Kovarianz-Downsampling und des Voxel-Grids im Sensorbezugssystem starke Fehler im Bezug auf Θ\Theta aufweist. Unter der falschen Vorgabe ist dieser Winkel eine komplette Drehung, sodass er zumindest korrigierbar ist. Die Position kann mit keiner der vorgestellten Methoden eindeutig bestimmt werden.

Die Abbildung zeigt die Gegenüberstellung der Konvergenz der verschiedenen Filterungen gegenüber der benötigten Anzahl an Iterationen. Es ist zu erkennen, dass im Falle der korrekten Vorgabe alle Filterungen schneller konvergieren als unter der falschen Vorgabe. Des Weiteren fällt auf, dass unter der falschen Vorgabe größere Optimierungsschritte ausgeführt werden. Daraus resultiert ein deutlich schwankender -Fehler, der jedoch erwartungsgemäß mit fortschreitenden Iterationen abflacht. Bis auf die Außnahme des Weltbezugssystems unter der falschen Vorgabe benötigt die Methode ohne Filterung deutlich mehr Iterationen bis zur Konvergenz. Am schnellsten konvergiert die Kalibrierung unter Einsatz der kombinierten Filterung.

Ergebnisanalyse

Es kann festgehalten werden, dass die Kalibrierung unter Vorgabe einer fast korrekten Montagepose im Weltbezugssystem die besten Ergebnisse erzielt hat. Ebenfalls sind die Rotationen in Form von Vielfachen eindeutiger zu bestimmen. Bezüglich der Translationen wiesen die Messergebnisse einige Schwierigkeiten auf.

Welche Filterfunktion die besten Ergebnisse liefert, ist nicht erkennbar. Des Weiteren wurden die Filterfunktionen mit ihren Standardparametern verwendet, die bezüglich der vorliegenden -Scans optimiert werden können. Die zuverlässigsten Ergebnisse liefert die Kalibrierung ohne jegliche Filterung, zumindest, wenn eine korrekte Vorgabe zur Montagepose gegeben ist.

Des Weiteren gilt es zu beachten, dass auch die Trägerplattform sowie die Sensoren im Allgemeinen Fehler aufweisen. Besonders beim Versuch In-Flight sind zudem Auswirkungen durch den Flugpfad und der Umgebung nicht auszuschließen. Ebenfalls wirkt sich die Auswahl der Schlüsselszenen auf die Kalibrierung aus, da zu kleine oder zu große Bewegungsänderungen zu Schwierigkeiten in der Registrierung führen.

Alle aufgenommenen und ausgewerteten Daten können in einem iPython Notebook, das sich auf dem beigelegten Datenträger und unter dem GitHub-Repository befindet, nachverfolgt und weiterführend ausgewertet werden.

Fazit und Ausblick

In dieser Arbeit wurde ein Ansatz zur automatisierten relativen extrinsischen Kalibrierung von bildgebenden Sensoren zu einer -Sensorik vorgestellt. Ziel war es, durch den Vergleich von paarweise registrierten Punktwolken und den parallel aufgezeichneten Bewegungsdaten eine Montagepose zu bestimmen.

Da der -Algorithmus ohne initiale Ausrichtung in ein lokales Minimum fällt, wurde die Registrierung der Punktwolken in einem nicht-linearen Optimierungsalgorithmus nach Levenberg-Marquardt geschachtelt.

Diese Optimierungsfunktion benötigt für jede Unbekannte einen Startwert, der über einen Liniensuchalgorithmus, zu Beginn steepest-descent und anschließend Newton-Gauß, optimiert wird. Dazu werden Datensätze durch den Benutzer ausgewählt, die eine markante Bewegung des Trägers in Form von Rotationen und Translationen aufweisen.

Grundlage für die Optimierung ist dabei eine Fehlermetrik. Diese Fehlermetrik entspricht der mittleren euklidischen Distanz zwischen der Punktwolke vor der Bewegung und der Punktwolke nach der Bewegung.

Da die vorliegenden Datensätze die Eigenschaft einer ungleichmäßig verteilten Punktwolke aufweisen, wurden einige Funktionen zur Filterung und für das Downsampling implementiert. Alle vorgestellten Funktionen wurden entsprechend ihrer Standardparameter verwendet.

Die Ergebnisse zeigen, dass trotz Verwendung der Funktionen zur Optimierung der Punktwolken sowie der geschachtelten Optimierung der Montagepose kein globales Minimum garantiert werden kann. Für die weitere Betrachtung der Thematik sollte besonderes Augenmerk auf die Parametrisierung der Filter- und Samplingfunktionen gelegt werden. Am vielversprechendsten ist dabei das Covariance-Sampling, da es die Möglichkeit bietet, planare Flächen zu entfernen und die Punktwolke auf markante Stellen zu reduzieren. Dadurch werden geometrisch stabilere Punktwolken geschaffen und lokale Minima vermieden.

Des Weiteren wurde beobachtet, dass die gleichzeitige Optimierung von Translation und Rotation nicht ideal ist, da die Rotationen einen größeren Einfluss auf das Resultat der Optimierung hatten als die Translationen. Es wird empfohlen, für zukünftige Anwendungen die Optimierung der Translation und Rotation getrennt zu betrachten oder die Parameter unterschiedlich zu gewichten.

Bildgebende Sensoren bieten die Möglichkeit, die Umgebung nicht nur zu vermessen, sondern sie auch zu kategorisieren. Da die Automatisierung von Abläufen immer weiter voranschreitet, wird die Extraktion von Bewegungen meiner Meinung nach in Zukunft einen sehr hohen Stellenwert einnehmen.

Bereits heute werden Fahrzeugführer durch unterschiedliche Assistenzsysteme unterstützt. Im Kraftfahrzeugbereich zählen zum Beispiel Geschwindigkeitsregelung, Spur- und Abstandsassistenten sowie Navigationssysteme bereits zum Repertoire der Werksausstattung. In der Luftfahrt halten seit einigen Jahren Autopiloten sowie Systeme zur automatisierten Landung Einzug. Im Bereich der Schifffahrt werden Containerschiffe bereits vollautomatisiert durch eine minimale Besatzung gefahren.

Auch der Gütertransport befindet sich im Wandel zur Automatisierung. So forschen Versandunternehmen wie Amazon bereits an selbstfliegenden zur individuellen Paketzustellung; auch in der Überwachung durch Polizeibehörden werden vermehrt automatisierte Systeme eingesetzt.

Die vorliegende Arbeit legt mit der automatisierten Kalibrierung einen Grundstein für zukünftige Entwicklungen.

(???) { font-family: octicons-anchor; src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAYcAA0AAAAACjQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABMAAAABwAAAAca8vGTk9TLzIAAAFMAAAARAAAAFZG1VHVY21hcAAAAZAAAAA+AAABQgAP9AdjdnQgAAAB0AAAAAQAAAAEACICiGdhc3AAAAHUAAAACAAAAAj//wADZ2x5ZgAAAdwAAADRAAABEKyikaNoZWFkAAACsAAAAC0AAAA2AtXoA2hoZWEAAALgAAAAHAAAACQHngNFaG10eAAAAvwAAAAQAAAAEAwAACJsb2NhAAADDAAAAAoAAAAKALIAVG1heHAAAAMYAAAAHwAAACABEAB2bmFtZQAAAzgAAALBAAAFu3I9x/Nwb3N0AAAF/AAAAB0AAAAvaoFvbwAAAAEAAAAAzBdyYwAAAADP2IQvAAAAAM/bz7t4nGNgZGFgnMDAysDB1Ml0hoGBoR9CM75mMGLkYGBgYmBlZsAKAtJcUxgcPsR8iGF2+O/AEMPsznAYKMwIkgMA5REMOXicY2BgYGaAYBkGRgYQsAHyGMF8FgYFIM0ChED+h5j//yEk/3KoSgZGNgYYk4GRCUgwMaACRoZhDwCs7QgGAAAAIgKIAAAAAf//AAJ4nHWMMQrCQBBF/0zWrCCIKUQsTDCL2EXMohYGSSmorScInsRGL2DOYJe0Ntp7BK+gJ1BxF1stZvjz/v8DRghQzEc4kIgKwiAppcA9LtzKLSkdNhKFY3HF4lK69ExKslx7Xa+vPRVS43G98vG1DnkDMIBUgFN0MDXflU8tbaZOUkXUH0+U27RoRpOIyCKjbMCVejwypzJJG4jIwb43rfl6wbwanocrJm9XFYfskuVC5K/TPyczNU7b84CXcbxks1Un6H6tLH9vf2LRnn8Ax7A5WQAAAHicY2BkYGAA4teL1+yI57f5ysDNwgAC529f0kOmWRiYVgEpDgYmEA8AUzEKsQAAAHicY2BkYGB2+O/AEMPCAAJAkpEBFbAAADgKAe0EAAAiAAAAAAQAAAAEAAAAAAAAKgAqACoAiAAAeJxjYGRgYGBhsGFgYgABEMkFhAwM/xn0QAIAD6YBhwB4nI1Ty07cMBS9QwKlQapQW3VXySvEqDCZGbGaHULiIQ1FKgjWMxknMfLEke2A+IJu+wntrt/QbVf9gG75jK577Lg8K1qQPCfnnnt8fX1NRC/pmjrk/zprC+8D7tBy9DHgBXoWfQ44Av8t4Bj4Z8CLtBL9CniJluPXASf0Lm4CXqFX8Q84dOLnMB17N4c7tBo1AS/Qi+hTwBH4rwHHwN8DXqQ30XXAS7QaLwSc0Gn8NuAVWou/gFmnjLrEaEh9GmDdDGgL3B4JsrRPDU2hTOiMSuJUIdKQQayiAth69r6akSSFqIJuA19TrzCIaY8sIoxyrNIrL//pw7A2iMygkX5vDj+G+kuoLdX4GlGK/8Lnlz6/h9MpmoO9rafrz7ILXEHHaAx95s9lsI7AHNMBWEZHULnfAXwG9/ZqdzLI08iuwRloXE8kfhXYAvE23+23DU3t626rbs8/8adv+9DWknsHp3E17oCf+Z48rvEQNZ78paYM38qfk3v/u3l3u3GXN2Dmvmvpf1Srwk3pB/VSsp512bA/GG5i2WJ7wu430yQ5K3nFGiOqgtmSB5pJVSizwaacmUZzZhXLlZTq8qGGFY2YcSkqbth6aW1tRmlaCFs2016m5qn36SbJrqosG4uMV4aP2PHBmB3tjtmgN2izkGQyLWprekbIntJFing32a5rKWCN/SdSoga45EJykyQ7asZvHQ8PTm6cslIpwyeyjbVltNikc2HTR7YKh9LBl9DADC0U/jLcBZDKrMhUBfQBvXRzLtFtjU9eNHKin0x5InTqb8lNpfKv1s1xHzTXRqgKzek/mb7nB8RZTCDhGEX3kK/8Q75AmUM/eLkfA+0Hi908Kx4eNsMgudg5GLdRD7a84npi+YxNr5i5KIbW5izXas7cHXIMAau1OueZhfj+cOcP3P8MNIWLyYOBuxL6DRylJ4cAAAB4nGNgYoAALjDJyIAOWMCiTIxMLDmZedkABtIBygAAAA==) format(‘woff’); }

.markdown-body { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; color: #333; overflow: hidden; font-family: “Helvetica Neue”, Helvetica, “Segoe UI”, Arial, freesans, sans-serif; font-size: 16px; line-height: 1.6; word-wrap: break-word; }

.markdown-body a { background-color: transparent; }

.markdown-body a:active, .markdown-body a:hover { outline: 0; }

.markdown-body strong { font-weight: bold; }

.markdown-body h1 { font-size: 2em; margin: 0.67em 0; }

.markdown-body img { border: 0; }

.markdown-body hr { box-sizing: content-box; height: 0; }

.markdown-body pre { overflow: auto; }

.markdown-body code, .markdown-body kbd, .markdown-body pre { font-family: monospace, monospace; font-size: 1em; }

.markdown-body input { color: inherit; font: inherit; margin: 0; }

.markdown-body html input[disabled] { cursor: default; }

.markdown-body input { line-height: normal; }

.markdown-body input[type=“checkbox”] { box-sizing: border-box; padding: 0; }

.markdown-body table { border-collapse: collapse; border-spacing: 0; }

.markdown-body td, .markdown-body th { padding: 0; }

.markdown-body * { box-sizing: border-box; }

.markdown-body input { font: 13px/1.4 Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, “Segoe UI Emoji”, “Segoe UI Symbol”; }

.markdown-body a { color: #4078c0; text-decoration: none; }

.markdown-body a:hover, .markdown-body a:active { text-decoration: underline; }

.markdown-body hr { height: 0; margin: 15px 0; overflow: hidden; background: transparent; border: 0; border-bottom: 1px solid #ddd; }

.markdown-body hr:before { display: table; content: “”; }

.markdown-body hr:after { display: table; clear: both; content: “”; }

.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { margin-top: 15px; margin-bottom: 15px; line-height: 1.1; }

.markdown-body h1 { font-size: 30px; }

.markdown-body h2 { font-size: 21px; }

.markdown-body h3 { font-size: 16px; }

.markdown-body h4 { font-size: 14px; }

.markdown-body h5 { font-size: 12px; }

.markdown-body h6 { font-size: 11px; }

.markdown-body blockquote { margin: 0; }

.markdown-body ul, .markdown-body ol { padding: 0; margin-top: 0; margin-bottom: 0; }

.markdown-body ol ol, .markdown-body ul ol { list-style-type: lower-roman; }

.markdown-body ul ul ol, .markdown-body ul ol ol, .markdown-body ol ul ol, .markdown-body ol ol ol { list-style-type: lower-alpha; }

.markdown-body dd { margin-left: 0; }

.markdown-body code { font-family: Consolas, “Liberation Mono”, Menlo, Courier, monospace; font-size: 12px; }

.markdown-body pre { margin-top: 0; margin-bottom: 0; font: 12px Consolas, “Liberation Mono”, Menlo, Courier, monospace; }

.markdown-body .select::-ms-expand { opacity: 0; }

.markdown-body .octicon { font: normal normal normal 16px/1 octicons-anchor; display: inline-block; text-decoration: none; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }

.markdown-body .octicon-link:before { content: ‘05c’; }

.markdown-body>*:first-child { margin-top: 0 !important; }

.markdown-body>*:last-child { margin-bottom: 0 !important; }

.markdown-body a:not([href]) { color: inherit; text-decoration: none; }

.markdown-body .anchor { position: absolute; top: 0; left: 0; display: block; padding-right: 6px; padding-left: 30px; margin-left: -30px; }

.markdown-body .anchor:focus { outline: none; }

.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { position: relative; margin-top: 1em; margin-bottom: 16px; font-weight: bold; line-height: 1.4; }

.markdown-body h1 .octicon-link, .markdown-body h2 .octicon-link, .markdown-body h3 .octicon-link, .markdown-body h4 .octicon-link, .markdown-body h5 .octicon-link, .markdown-body h6 .octicon-link { display: none; color: #000; vertical-align: middle; }

.markdown-body h1:hover .anchor, .markdown-body h2:hover .anchor, .markdown-body h3:hover .anchor, .markdown-body h4:hover .anchor, .markdown-body h5:hover .anchor, .markdown-body h6:hover .anchor { padding-left: 8px; margin-left: -30px; text-decoration: none; }

.markdown-body h1:hover .anchor .octicon-link, .markdown-body h2:hover .anchor .octicon-link, .markdown-body h3:hover .anchor .octicon-link, .markdown-body h4:hover .anchor .octicon-link, .markdown-body h5:hover .anchor .octicon-link, .markdown-body h6:hover .anchor .octicon-link { display: inline-block; }

.markdown-body h1 { padding-bottom: 0.3em; font-size: 2.25em; line-height: 1.2; border-bottom: 1px solid #eee; }

.markdown-body h1 .anchor { line-height: 1; }

.markdown-body h2 { padding-bottom: 0.3em; font-size: 1.75em; line-height: 1.225; border-bottom: 1px solid #eee; }

.markdown-body h2 .anchor { line-height: 1; }

.markdown-body h3 { font-size: 1.5em; line-height: 1.43; }

.markdown-body h3 .anchor { line-height: 1.2; }

.markdown-body h4 { font-size: 1.25em; }

.markdown-body h4 .anchor { line-height: 1.2; }

.markdown-body h5 { font-size: 1em; }

.markdown-body h5 .anchor { line-height: 1.1; }

.markdown-body h6 { font-size: 1em; color: #777; }

.markdown-body h6 .anchor { line-height: 1.1; }

.markdown-body p, .markdown-body blockquote, .markdown-body ul, .markdown-body ol, .markdown-body dl, .markdown-body table, .markdown-body pre { margin-top: 0; margin-bottom: 16px; }

.markdown-body hr { height: 4px; padding: 0; margin: 16px 0; background-color: #e7e7e7; border: 0 none; }

.markdown-body ul, .markdown-body ol { padding-left: 2em; }

.markdown-body ul ul, .markdown-body ul ol, .markdown-body ol ol, .markdown-body ol ul { margin-top: 0; margin-bottom: 0; }

.markdown-body li>p { margin-top: 16px; }

.markdown-body dl { padding: 0; }

.markdown-body dl dt { padding: 0; margin-top: 16px; font-size: 1em; font-style: italic; font-weight: bold; }

.markdown-body dl dd { padding: 0 16px; margin-bottom: 16px; }

.markdown-body blockquote { padding: 0 15px; color: #777; border-left: 4px solid #ddd; }

.markdown-body blockquote>:first-child { margin-top: 0; }

.markdown-body blockquote>:last-child { margin-bottom: 0; }

.markdown-body table { display: block; width: 100%; overflow: auto; word-break: normal; word-break: keep-all; }

.markdown-body table th { font-weight: bold; }

.markdown-body table th, .markdown-body table td { padding: 6px 13px; border: 1px solid #ddd; }

.markdown-body table tr { background-color: #fff; border-top: 1px solid #ccc; }

.markdown-body table tr:nth-child(2n) { background-color: #f8f8f8; }

.markdown-body img { max-width: 100%; box-sizing: border-box; }

.markdown-body code { padding: 0; padding-top: 0.2em; padding-bottom: 0.2em; margin: 0; font-size: 85%; background-color: rgba(0,0,0,0.04); border-radius: 3px; }

.markdown-body code:before, .markdown-body code:after { letter-spacing: -0.2em; content: “0a0”; }

.markdown-body pre>code { padding: 0; margin: 0; font-size: 100%; word-break: normal; white-space: pre; background: transparent; border: 0; }

.markdown-body .highlight { margin-bottom: 16px; }

.markdown-body .highlight pre, .markdown-body pre { padding: 16px; overflow: auto; font-size: 85%; line-height: 1.45; background-color: #f7f7f7; border-radius: 3px; }

.markdown-body .highlight pre { margin-bottom: 0; word-break: normal; }

.markdown-body pre { word-wrap: normal; }

.markdown-body pre code { display: inline; max-width: initial; padding: 0; margin: 0; overflow: initial; line-height: inherit; word-wrap: normal; background-color: transparent; border: 0; }

.markdown-body pre code:before, .markdown-body pre code:after { content: normal; }

.markdown-body kbd { display: inline-block; padding: 3px 5px; font-size: 11px; line-height: 10px; color: #555; vertical-align: middle; background-color: #fcfcfc; border: solid 1px #ccc; border-bottom-color: #bbb; border-radius: 3px; box-shadow: inset 0 -1px 0 #bbb; }

.markdown-body .pl-c { color: #969896; }

.markdown-body .pl-c1, .markdown-body .pl-s .pl-v { color: #0086b3; }

.markdown-body .pl-e, .markdown-body .pl-en { color: #795da3; }

.markdown-body .pl-s .pl-s1, .markdown-body .pl-smi { color: #333; }

.markdown-body .pl-ent { color: #63a35c; }

.markdown-body .pl-k { color: #a71d5d; }

.markdown-body .pl-pds, .markdown-body .pl-s, .markdown-body .pl-s .pl-pse .pl-s1, .markdown-body .pl-sr, .markdown-body .pl-sr .pl-cce, .markdown-body .pl-sr .pl-sra, .markdown-body .pl-sr .pl-sre { color: #183691; }

.markdown-body .pl-v { color: #ed6a43; }

.markdown-body .pl-id { color: #b52a1d; }

.markdown-body .pl-ii { background-color: #b52a1d; color: #f8f8f8; }

.markdown-body .pl-sr .pl-cce { color: #63a35c; font-weight: bold; }

.markdown-body .pl-ml { color: #693a17; }

.markdown-body .pl-mh, .markdown-body .pl-mh .pl-en, .markdown-body .pl-ms { color: #1d3e81; font-weight: bold; }

.markdown-body .pl-mq { color: #008080; }

.markdown-body .pl-mi { color: #333; font-style: italic; }

.markdown-body .pl-mb { color: #333; font-weight: bold; }

.markdown-body .pl-md { background-color: #ffecec; color: #bd2c00; }

.markdown-body .pl-mi1 { background-color: #eaffea; color: #55a532; }

.markdown-body .pl-mdr { color: #795da3; font-weight: bold; }

.markdown-body .pl-mo { color: #1d3e81; }

.markdown-body kbd { display: inline-block; padding: 3px 5px; font: 11px Consolas, “Liberation Mono”, Menlo, Courier, monospace; line-height: 10px; color: #555; vertical-align: middle; background-color: #fcfcfc; border: solid 1px #ccc; border-bottom-color: #bbb; border-radius: 3px; box-shadow: inset 0 -1px 0 #bbb; }

.markdown-body .task-list-item { list-style-type: none; }

.markdown-body .task-list-item+.task-list-item { margin-top: 3px; }

.markdown-body .task-list-item input { margin: 0 0.35em 0.25em -1.6em; vertical-align: middle; }

.markdown-body :checked+.radio-label { z-index: 1; position: relative; border-color: #4078c0; } / Core CSS scaffold for Scholarly Markdown HTML v0.1.2 Copyright 2013 Tim T.Y. Lin * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 /

img { height: auto; max-width: 100%; vertical-align: baseline; }

table { display: inline-table; }

code { -webkit-hyphens: none; -moz-hyphens: none; -ms-hyphens: none; -o-hyphens: none; hyphens: none; word-break: keep-all; word-wrap: break-word; word-wrap: normal; white-space: pre; }

pre code { -webkit-hyphens: none; -moz-hyphens: none; -ms-hyphens: none; -o-hyphens: none; hyphens: none; word-break: keep-all; word-wrap: break-word; word-wrap: normal; white-space: pre; }

.references a { -webkit-hyphens: none; -moz-hyphens: none; -ms-hyphens: none; -o-hyphens: none; hyphens: none; -ms-word-break: break-all; word-break: break-word; word-break: break-all; word-wrap: break-word; }

.scholmd-float-caption .scholmd-caption-head { font-weight: bold; }

.scholmd-float-caption .scholmd-caption-head-prefix:after { content: “0”; }

.scholmd-caption-head:after { content: " “; }

.scholmd-float { position: relative; width: 100%; padding: 10px 0 10px; margin: 20px auto 20px; }

.scholmd-float-content { position: relative; width: 70%; margin: auto; text-align: center; vertical-align: baseline; }

.scholmd-widefloat > .scholmd-float-content { width: 90%; }

.scholmd-subfig { height: auto; max-width: 100%; padding: 0 5px 0px; margin: 0 auto 5px; }

.scholmd-float-caption { width: 90%; padding: 10px 0 5px; margin: 0 auto 0px; text-align: center; }

.scholmd-float-caption figcaption { text-align: justify; }

.scholmd-float-subcaption { float: left; width: 100%; padding: 5px; margin: 0 auto 0px; text-align: center; }

.scholmd-float-subcaption figcaption { text-align: left; }

figcaption { display: inline-block; }

.scholmd-float-content img { width: 100%; }

.scholmd-algorithm > .scholmd-float-content { padding: 6px 0 6px; text-align: left; }

.scholmd-algorithm > .scholmd-float-content p { -webkit-hyphens: none; -moz-hyphens: none; -ms-hyphens: none; -o-hyphens: none; hyphens: none; -ms-word-break: keep-all; word-break: keep-all; word-wrap: break-word; word-wrap: normal; white-space: pre; }

.scholmd-table-float > .scholmd-float-content { width: auto; padding: 0; margin: 0 auto 5px; }

.scholmd-listing-float > .scholmd-float-content pre { text-align: left; }

.scholmd-listing-float > .scholmd-float-content table { width: auto; max-width: 100%; text-align: left; white-space: pre; }

.scholmd-float-content { overflow-x: auto; }

.scholmd-math-display { overflow-x: auto; }

.scholmd-figure > .scholmd-float-content { overflow-x: visible; }

Andert, Franz 2011: Bildbasierte Umgebungserkennung für autonomes Fliegen (DLR eV: PhD thesis).

Bae, Kwang-Ho/Lichti, Derek 2007: On-site self-calibration using planar features for terrestrial laser scanners, in: Proceedings of the ISPRS Workshop on Laser Scanning and SilviLaser, 14-19.

Bellekens, Ben/Spruyt, Vincent/Berkvens, Rafael/Weyn, Maarten 2014: A Survey of Rigid 3D Pointcloud Registration Algorithms, in: Fourth International Conference on Ambient Computing, Applications, Services and Technologies, 8-13.

Belshaw, Michael Sweeney/Greenspan, Michael A. 2009: A high speed iterative closest point tracker on an FPGA platform, in: Computer Vision Workshops (ICCV Workshops), 2009 IEEE 12th International Conference on, 1449-1456.

Bentley, Jon Louis 1975: Multidimensional Binary Search Trees Used for Associative Searching, in: Commun. ACM 18: 9, 509-517, in: http://doi.acm.org/10.1145/361002.361007.

Benzerrouk, Hamza/Salhi, Hassen/Nebylov, Alexander 2013: Adaptive „Cubature and Sigma Points“ Kalman Filtering Applied to MEMS IMU/GNSS Data Fusion during Measurement Outlier, in: Journal of Sensor Technology 3: 04, 115.

Besl, Paul J./McKay, Neil D. 1992: Method for registration of 3-d shapes, in: Robotics-dL tentative, 586-606.

Boughorbel, Faysal/Mercimek, Muharrem/Koschan, Andreas/Abidi, Mongi 2010: A new method for the registration of three-dimensional point-sets: The Gaussian fields framework, in: Image and Vision Computing 28: 1, 124-137.

Browell, EV/Ismail, S./Grant, WB 1998: Differential absorption lidar (DIAL) measurements from air and space, in: Applied Physics B 67: 4, 399-410.

Chan, Ting On/Lichti, Derek D./Belton, David 2015: A rigorous cylinder-based self-calibration approach for terrestrial laser scanners, in: ISPRS Journal of Photogrammetry and Remote Sensing 99: 84-99.

Davison, Andrew J./Reid, Ian D./Molton, Nicholas D./Stasse, Olivier 2007: MonoSLAM: Real-time single camera SLAM, in: Pattern Analysis and Machine Intelligence, IEEE Transactions on 29: 6, 1052-1067.

Dawes, Beman/Abrahams, David/Rivera, Rene 1998: boost C++ libraries, in: http://www.boost.org.

Delmerico, Jeff 2013: PCL Tutorial: The Point Cloud Library By Example, in: http://www.jeffdelmerico.com/wp-content/uploads/2014/03/pcl_tutorial.pdf.

Demtröder, Wolfgang 2013: Experimentalphysik 2: Elektrizität und optik, 6. Aufl.

Droeschel, David/Behnke, Sven 2011: 3D body pose estimation using an adaptive person model for articulated ICP, in: Intelligent Robotics and Applications, 157-167.

Edwan, Ezzaldeen 2013: Novel approaches for improved performance of inertial sensors and integrated navigation systems (Universität Siegen: PhD thesis).

Gavin, Henri 2011: The levenberg-marquardt method for nonlinear least squares curve-fitting problems, in: Department of Civil and Environmental Engineering, Duke University: 1-15.

Gelfand, Natasha/Ikemoto, Leslie/Rusinkiewicz, Szymon/Levoy, Marc 2003: Geometrically stable sampling for the ICP algorithm, in: 3-D Digital Imaging and Modeling, 2003. 3DIM 2003. Proceedings. Fourth International Conference on, 260-267.

Goormann, Lukas 2004: Objektorientierte Bildverarbeitungsalgorithmen zum relativen Hovern eines autonomen Helikopters (Fachhochschule Braunschweig/Wolfenbüttel: Diplomarbeit), Braunschweig.

Guennebaud, Gaël/Jacob, Benoît/others 2010: Eigen v3, in: http://eigen.tuxfamily.org/index.php?title=Main_Page.

Guth, Olaf 2004: Biologisch inspirierte Bildverarbeitungsalgorithmen zur Realisierung eines Geländefolgefluges für einen autonomen Kleinhubschrauber (Fachhochschule Braunschweig/Wolfenbüttel: Diplomarbeit), Braunschweig.

Hervier, Thibault/Bonnabel, Silvere/Goulette, François 2012: Accurate 3D maps from depth images and motion sensors via nonlinear Kalman filtering, in: 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 5291-5297.

iMAR, GmbH 2013: iMAR iTraceRT-F400-Q.

Kern, Fredie 2003: Automatisierte modellierung von bauwerksgeometrien aus 3D-laserscanner-daten.

Köhne, Anja/Wößner, Michael 2008: Fehlerquellen bei GPS, in: http://www.kowoma.de/gps/Fehlerquellen.htm.

Krause, Stefan/Evert, Robert 2012: Remission based improvement of extrinsic parameter calibration of camera and laser scanner, in: 12th International Conference on Control Automation Robotics
& Vision (ICARCV), 829-834.

Kuchling, Horst 2011: Taschenbuch der Physik, 20. Aufl.

Lemoine, FG/Kenyon, SC/Factor, JK/Trimmer, RG/Pavlis, NK/Chinn, DS/Cox, CM/Klosko, SM/Luthcke, SB/Torrence, MH/others 1998: The development of the joint NASA GSFC and NIMA geopotential model EGM96: NASA Goddard Space Flight Center, in: Greenbelt, Maryland 20771: 298.

Levinson, Jesse Sol 2011: Automatic laser calibration, mapping, and localization for autonomous vehicles.

Lindenberger, Joachim 1993: Laser-Profilmessungen zur topographischen Geländeaufnahme (Bayerische Akademie der Wissenschaften: PhD thesis).

Lowe, David G. 1999: Object recognition from local scale-invariant features, in: Computer vision, 1999. the proceedings of the seventh iEEE international conference on, Band 2, 1150-1157.

Maddern, Will/Harrison, Alastair/Newman, Paul 2012: Lost in translation (and rotation): Rapid extrinsic calibration for 2D and 3D LIDARs, in: Robotics and Automation (ICRA), 2012 IEEE International Conference on, 3096-3102.

Madsen, Kaj/Bruun, Hans/Tingleff, Ole 1999: Methods for non-linear least squares problems.

May, Stefan/Droeschel, David/Holz, Dirk/Wiesen, Christoph/Fuchs, Stefan/others 2008: 3D pose estimation and mapping with time-of-flight cameras, in: International Conference on Intelligent Robots and Systems (IROS), 3D Mapping workshop, Nice, France.

Mendes, Abel/Bento, Luis Conde/Nunes, Urbano 2004: Multi-target detection and tracking with a laser scanner, in: Intelligent Vehicles Symposium, 2004 IEEE, 796-801.

Michelson, Albert Abraham 1925: The Effect of the Earth’s Rotation on the Velocity of Light, I., in: The Astrophysical Journal 61: 137.

Muja, Marius/Lowe, David G. 2008: FLANN - Fast Library for Approximate Nearest Neighbors, in: http://www.cs.ubc.ca/research/flann/.

Muja, Marius/Lowe, David G. 2012: Fast Matching of Binary Features, in: 2012 Ninth Conference on Computer and Robot Vision (CRV), 404-410.

Muja, Marius/Lowe, David G. 2014: Scalable nearest neighbor algorithms for high dimensional data, in: IEEE Transactions on Pattern Analysis and Machine Intelligence 36: 11, 2227-2240.

Rusinkiewicz, Szymon/Levoy, Marc 2001: Efficient variants of the ICP algorithm, in: Third International Conference on 3-D Digital Imaging and Modeling, 2001. Proceedings., 145-152.

Rusu, Radu Bogdan/Blodow, Nico/Beetz, Michael 2009: Fast point feature histograms (FPFH) for 3D registration, in: IEEE International Conference on Robotics and Automation, 2009. ICRA’09., 3212-3217.

Rusu, Radu Bogdan/Cousins, Steve 2011: 3D is here: Point Cloud Library (PCL), in: 2011 IEEE International Conference on Robotics and Automation (ICRA), 1-4.

Schroeder, Will J./Lorensen, Bill/Martin, Ken 2004: The Visualization Toolkit.

Sheehan, Mark/Harrison, Alastair/Newman, Paul 2011: Self-calibration for a 3D laser, in: The International Journal of Robotics Research: 0278364911429475.

Stellmacher, Sebastian 2014: Navigationsdatenkorrektur durch 3D Registrierung (Otto-von-Guericke-Universität Magdeburg: Master’s thesis).

Talaya, J./Alamus, R./Bosch, E./Serra, A./Kornus, W./Baron, A. 2004: Integration of a terrestrial laser scanner with GPS/IMU orientation sensors, in: Proceedings of the XXth ISPRS Congress, Band 35, 1049-1055.

The National Coordination Office for Space-Based Positioning, Navigation, and Timing 2013: Selective availability, in: http://www.gps.gov/systems/gps/modernization/sa/.

The United States Government 1995: Global Positioning System Standard Positioning Service Signal Specification, 2. Aufl.

Wulfmeyer, Volker/Bösenberg, Jens 1998: Ground-based differential absorption lidar for water-vapor profiling: assessment of accuracy, resolution, and meteorological applications, in: Applied Optics 37: 18, 3825-3844.

Wuttke, Joachim 2007: lmfit, in: http://apps.jcns.fz-juelich.de/doku/sc/lmfit.

Yang, Jiaolong/Li, Hongdong/Jia, Yunde 2013: Go-ICP: solving 3D registration efficiently and globally optimally, in: Computer Vision (ICCV), 2013 IEEE International Conference on, 1457-1464.


  1. Das -Framework dient seit 2004 als Plattform zur Evaluation digitaler Bildverarbeitungsalgorithmen in der Abteilung am . Für weitere Informationen zur grundlegenden Idee und den Hintergründen des Frameworks siehe Guth (2004) und Goormann (2004).

  2. Ein Skalarfeld bezeichnet in der Analysis eine Funktion, die jedem Punkt eines Raumes ein Skalar (eine reelle Zahl) zuordnet.

  3. Ein Vektorfeld bezeichnet eine Funktion, die jedem Punkt eines Raumes einen Vektor zuordnet.

  4. Bathymetrische Vermessung bezeichnet die Vermessung der topographischen Gestalt von Gewässerbetten, Meeresböden und Seegründen.

  5. Bei einem Sterntag handelt es sich um den Zeitraum zwischen zwei oberen Kulminationen des Frühlingspunkts, verursacht durch die Eigendrehung der Erde. Ausgedrückt in -Einheiten beträgt ein Sterntag 23 Stunden, 56 Minuten und 4,091 Sekunden.

  6. Ephemeriden sind Positionswerte, Bahndaten sich bewegender astronomischer Objekte.

  7. Im Vergleich zu den Ephemeriden enthält der Almanach weniger genaue, aber dafür länger gültige Bahndaten, die um Informationen über die Integrität der ausgestrahlten Signale (technischer Zustand, momentane Konfiguration und die Identifikationsnummer) ergänzt sind.

  8. Keplersche Bahnelemente beschreiben die Bewegung eines astronomischen Objekts gemäß den Keplerschen Gesetzen im Schwerefeld eines Himmelskörpers.

  9. Rusu/Cousins (2011).

  10. Dawes et al. (1998).

  11. Muja/Lowe (2008), Muja/Lowe (2012), Muja/Lowe (2014).

  12. Guennebaud et al. (2010).

  13. Schroeder et al. (2004).

  14. In der Informationstechnik bezeichnet NaN (Not a Number) einen numerischen Datentyp-Wert, der einem undefinierten oder nicht darstellbaren Wert entspricht.

  15. Inf (Infinity) bezeichnet die Darstellung der Unendlichkeit eines Wertes.

  16. In der Automobilbranche werden die Rotationen und Koordinatensysteme anders ausgerichtet. Dies ist in der 70000 erläutert.

  17. Features bezeichnet eindeutig erkennbare und unterscheidbare Merkmale in aufgenommenen Bildern.

  18. Im Automobilbereich werden zur Verfolgung der Bewegung sogenannte Odometriesensoren verwendet, die zum Beispiel die Umdrehungen der Räder zählen. Durch Schlupf auf Grund unterschiedlicher Luftdrücke der Räder, wechselndem Beladezustand oder variierendem Untergrund, sind diese Messdaten sehr fehlerbehaftet. Durch die Erstellung einer Karte und einem Loop-Closing-Pfad (es wird eine zyklische Strecke abgefahren) werden die Sensorwerte entsprechend korrigiert.

  19. Echtzeit bezeichnet in diesem Zusammenhang die Bedingung, dass die Punktwolken schneller zueinander registriert werden können, als neue Sensordaten vorliegen.

  20. Eine Kovarianzmatrix enthält Informationen über die Streuung eines Zufallsvektors und über die Korrelationen zwischen dessen Komponenten

  21. Ein Scanabstand bezeichnet die Anzahl an Scans, die zwischen zwei Scanpaaren ignoriert werden.